MySQL - 表達式With as 語句的使用及練習

目錄

8.1 WITH AS 的含義

8.2 WITH AS語法的基本結構如下:

8.3 練習題1

8.4 牛客練習題


8.1 WITH AS 的含義

WITH AS 語法是MySQL中的一種臨時結果集,它可以在SELECT、INSERT、UPDATE或DELETE語句中使用。通過使用WITH AS語句,可以將一個查詢的結果存儲在一個臨時表中,然后在后續的查詢中引用這個臨時表。這樣可以簡化復雜的查詢,提高代碼的可讀性和可維護性。

8.2 WITH AS語法的基本結構如下:

WITH temporary_table_name AS (SELECT column1, column2, ...FROM table_nameWHERE condition
)
SELECT * FROM temporary_table_name;
其中,temporary_table_name是臨時表的名稱,table_name是要查詢的表名,condition是篩選條件。

8.3 練習題1

數據庫

drop table if exists  `dept_emp` ;
drop table if exists  `salaries` ;
CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));
INSERT INTO dept_emp VALUES(10001,'d001','1986-06-26','9999-01-01');
INSERT INTO dept_emp VALUES(10002,'d001','1996-08-03','9999-01-01');
INSERT INTO dept_emp VALUES(10003,'d004','1995-12-03','9999-01-01');
INSERT INTO dept_emp VALUES(10004,'d004','1986-12-01','9999-01-01');
INSERT INTO dept_emp VALUES(10005,'d003','1989-09-12','9999-01-01');
INSERT INTO dept_emp VALUES(10006,'d002','1990-08-05','9999-01-01');
INSERT INTO dept_emp VALUES(10007,'d005','1989-02-10','9999-01-01');
INSERT INTO dept_emp VALUES(10009,'d006','1985-02-18','9999-01-01');
INSERT INTO dept_emp VALUES(10010,'d006','2000-06-26','9999-01-01');INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01');
INSERT INTO salaries VALUES(10004,74057,'2001-11-27','9999-01-01');
INSERT INTO salaries VALUES(10005,94692,'2001-09-09','9999-01-01');
INSERT INTO salaries VALUES(10006,43311,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10007,88070,'2002-02-07','9999-01-01');
INSERT INTO salaries VALUES(10009,95409,'2002-02-14','9999-01-01');

有一個員工表dept_emp簡況如下:

有一個薪水表salaries簡況如下:

問題1:獲取每個部門中當前員工薪水最高的相關信息,給出dept_no, emp_no以及其對應的salary,按照部門編號dept_no升序排列,以上例子輸出如下:

with temp as (select dept_no,d.emp_no,salaryfrom dept_emp as dinner join salaries as son d.emp_no=s.emp_no
)
select temp.dept_no,emp_no,maxSalary
from temp
inner join(
select dept_no, max(salary) as maxSalary
from temp
group by dept_no) as t2
on temp.dept_no=t2.dept_no and t2.maxSalary=salary
order by temp.dept_no;

8.4 牛客練習題

SQL206 獲取每個部門中當前員工薪水的最高的相關信息

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

量子芯片技術:未來的計算革命

量子芯片技術:未來的計算革命 一、引言 隨著科技的不斷發展,人類正在進入一個全新的技術時代,即量子時代。量子芯片技術作為這個時代的重要代表,正逐漸改變我們對計算和信息處理的理解。本文將深入探討量子芯片技術的基本原理、…

Navicat 技術指引 | 適用于 GaussDB 分布式的服務器對象的創建/設計

Navicat Premium(16.3.3 Windows版或以上)正式支持 GaussDB 分布式數據庫。GaussDB分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結構…

Java入門 EditPlus的安裝與配置講解

寫Java程序不建議使用EditPlus,首選idea社區版,其次是vscode, 然后是eclipse 。editplus說實話排不上號。 但既然小伙伴想了解一下怎么配置,這里就簡單說一下。 下載 首先是jdk,jdk是Java開發和運行的基礎&#xff…

EVT_WDF_DEVICE_PREPARE_HARDWARE API

NTSTATUS EVT_WDF_DEVICE_PREPARE_HARDWARE(__inWDFDEVICE Device,__inWDFCMRESLIST ResourcesRaw,__inWDFCMRESLIST ResourcesTranslated); 上面API中ResourcesRaw和ResourcesTranslated類型相同,那他們的區別是啥? 答: EVT_WDF_DEVICE_P…

【前端設計模式】之訪問者模式

引言 在前端開發中,我們經常需要處理復雜的對象結構和數據集合。這時候,訪問者模式就能派上用場了。訪問者模式允許我們將操作和數據結構分離開來,從而實現對復雜對象結構的優雅處理。 訪問者模式的特性 訪問者模式具有以下特性&#xff1…

iview Table實現跨頁勾選記憶功能以及利用ES6的Map數據結構實現根據id進行對象數組的去重

因為iview Table組件的勾選是選中當前頁的所有數據,當我們切到別的頁面時,會發送請求給后端,這個時候就會刷新我們之前頁碼已經選中的數據。現在有個需求就是,在我們選擇不同頁碼的數據勾選中之后,實現跨頁勾選記憶功能,就是說已經打鉤了的數據,不管切到哪一頁它都是打鉤…

AI聊天專題報告:ChatGPT全景圖聊聊技術產品和未來

今天分享的AI系列深度研究報告:《AI聊天專題報告:ChatGPT全景圖聊聊技術產品和未來》。 (報告出品方:LanguageX) 報告共計:22頁 爭論:ChatGPT算不算技術革命 回應吳軍老師“ChatGPT不算新技術…

Navicat 技術指引 | 適用于 GaussDB 分布式的模型功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

Dubbo學習

一、整體架構設計分層 接口服務層(Service):該層與業務邏輯相關,根據provider和consumer的業務設計對應的接口和實現 配置層(Config):對外配置接口,以ServiceConfig和ReferenceConfig為中心 服…

cache 2.單機并發緩存

0.對原教程的一些見解 個人認為原教程中兩點知識的引入不夠友好。 首先是只讀數據結構 ByteView 的引入使用是有點迷茫的,可能不能很好理解為什么需要ByteView。 第二是主體結構 Group的引入也疑惑。其實要是熟悉groupcache,那對結構Group的使用是清晰…

線性回歸與邏輯回歸:深入解析機器學習的基石模型

目錄 一、線性回歸 二、邏輯回歸 邏輯回歸算法和 KNN 算法的區別 分類算法評價維度

QT作業2

使用手動連接,將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中,在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中,在槽函數中判斷ui界面上輸入的賬號是否為"admin",密碼是否為…

Navicat 技術指引 | 適用于 GaussDB 分布式的數據查看器

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

微服務學習:Nacos微服務架構中的服務注冊、服務發現和動態配置Nacos下載

Nacos的主要用途包括: 服務注冊與發現:Nacos提供了服務注冊和發現的功能,服務提供者可以將自己的服務注冊到Nacos服務器上,服務消費者則可以通過Nacos來發現可用的服務實例,從而實現服務調用。 動態配置管理&#xff…

聚觀早報 |華為暢享 70正式開售;夢餉科技雙12玩法

【聚觀365】12月8日消息 華為暢享 70正式開售 夢餉科技雙12玩法 華為Mate X5應對火海挑戰 谷歌發布AI模型Gemini 字節跳動開啟新一輪回購 華為暢享 70正式開售 精致外觀與創新科技兼具的華為暢享 70正式開售,1199元起搭載6000mAh超大電池,帶來超強…

機器視覺相機鏡頭光源選型

鏡頭選型工具 - HiTools - 海康威視 Hikvisionhttps://www.hikvision.com/cn/support/tools/hitools/cl8a9de13648c56d7f/ 海康機器人-機器視覺產品頁杭州海康機器人股份有限公司海康機器人HIKROBOT是面向全球的機器視覺和移動機器人產品及解決方案提供商,業務聚焦于…

oracle與sqlsever的區別

oracle與sqlsever的區別 區別一 oracle字符之間連接用|| sqlserver字符之間連接用區別二 oracle字段重命名用as sqlserver字段重命名用區別三 oracle判空用nvl sqlserver判空用isnull區別四 oracle多列合并成一列 select assid, LISTAGG(name, ) within group (order by…

Navicat 技術指引 | 適用于 GaussDB 分布式的數據生成功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

GPTs的創建與使用,自定義GPTs中的Actions示例用法 定義和執行特定任務的功能模塊 通過API與外部系統或服務的交互

Name 等 Logo:自動生成 Name 介紹 Description 介紹 Instructions 要求或命令等 比如用中文回復,角色。 Knowledge 上傳你的知識庫,如果你有某一垂直行業的數據,基于數據來回答。比如我有某個芯片的指令集。 Capabilities 都要 Actions&…

Flink 使用場景

Apache Flink 功能強大,支持開發和運行多種不同種類的應用程序。它的主要特性包括:批流一體化、精密的狀態管理、事件時間支持以及精確一次的狀態一致性保障等。Flink 不僅可以運行在包括 YARN、 Mesos、K8s 在內的多種資源管理框架上,還支持…