<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SQL練習(xí)筆記一:部門員工最高工資

          共 1492字,需瀏覽 3分鐘

           ·

          2020-12-20 17:27

          點(diǎn)擊上方藍(lán)字關(guān)注「網(wǎng)優(yōu)小兵玩Python

          ??

          創(chuàng)建Employee 表,包含所有員工信息,每個員工有其對應(yīng)的 Id, salary 和 department Id。

          -- 創(chuàng)建Employee表 --CREATE TABLE Employee(  Id int(4) not null,  Name VARCHAR(10) not null,  Salary int(10) not null,  DepartmentId int(4) not NULL);
          -- 增加4條數(shù)據(jù) --INSERT INTO Employee VALUES(1,'Joe',70000,1);INSERT INTO Employee VALUES(2,'Henry',80000,2);INSERT INTO Employee VALUES(3,'Sam',60000,2);INSERT INTO Employee VALUES(4,'Max',90000,1);

          創(chuàng)建Department 表,包含公司所有部門的信息。

          -- 創(chuàng)建Department表 --CREATE TABLE Department(  Id int(4) not null,  Name VARCHAR(10));
          -- 增加2條數(shù)據(jù) --INSERT into Department VALUES(1,'IT');INSERT?into?Department?VALUES(2,'Sales');

          問題一:編寫一個 SQL 查詢,找出每個部門工資最高的員工。例如,根據(jù)上述給定的表格,Max 在 IT 部門有最高工資,Henry 在 Sales 部門有最高工資。

          --?通過排序(必須加上LIMIT,不然結(jié)果不正確)與GROUP?BY結(jié)合求出部門內(nèi)最高工資,INNER?JOIN再關(guān)聯(lián)上部門名?--SELECT  D.Name AS Department,  E.Name AS Employee,  Salary FROM  ( SELECT * FROM Employee ORDER BY Salary DESC LIMIT 10 ) AS E  INNER JOIN Department AS D ON E.DepartmentId = D.Id GROUP BY  E.DepartmentId;

          問題2:查詢部門工資前3的信息。

          -- 增加2條數(shù)據(jù) --INSERT INTO Employee VALUES(5,'Janet',69000,1);INSERT?INTO?Employee?VALUES(6,'Randy',85000,1);
          -- 使用窗口函數(shù)對各部門的員工工資進(jìn)行分組排序SELECT ( SELECT D.Name FROM Department AS D WHERE DepartmentId = D.Id ) AS 'Department',??Name, Salary FROM ( SELECT Name, Salary, DepartmentId, RANK() over ( PARTITION BY DepartmentId ORDER BY Salary DESC ) AS ranking FROM Employee ) AS b WHERE ranking <= 3;

          總結(jié):當(dāng)ORDEY BY與GROUP BY結(jié)合查詢時需使用LIMIT分頁,不然分組后排序的結(jié)果各列值會對不上,問題一SQL語句中如不加LIMIT,查詢結(jié)果如下:

          可以看出IT部門的最高工資查詢結(jié)果是錯誤的。問題一可用問題二的窗口函數(shù)解法查詢,WHERE的條件修改為ranking<2即可。


          網(wǎng)優(yōu)苦短,我用Python





          網(wǎng)優(yōu)小工具傳送門


          自動擴(kuò)容

          4G網(wǎng)優(yōu)規(guī)劃工具

          同向最小站間距

          4/5G新開站腳本制作

          號碼歸屬地查詢

          站間距計(jì)算工具

          圖片相似度核查工具

          載頻配置統(tǒng)計(jì)工具

          活動保障

          瀏覽 66
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日皮视频免费 | 黄色片大女人吃大鸡巴老头子日大逼逼 | 春色导航| 黄色性爱在线播放 | 久久精品一区二区三区不卡牛牛 |