新開(kāi)一個(gè)帖子記錄SQL的漫漫長(zhǎng)征~
Day 1
leecode SQL 175
表1: Person
+-------------+---------+
| 列名 | 類型 |
+-------------+---------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+-------------+---------+
PersonId 是上表主鍵
表2: Address
+-------------+---------+
| 列名 | 類型 |
+-------------+---------+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
+-------------+---------+
AddressId 是上表主鍵
編寫一個(gè) SQL 查詢,滿足條件:無(wú)論 person 是否有地址信息,都需要基于上述兩表提供 person 的以下信息:
FirstName, LastName, City, State
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/combine-two-tables
# Write your MySQL query statement below
SELECT FirstName, LastName, City, State
FROM Person as p LEFT JOIN Address as a ON p.PersonId = a.PersonId;
Left Join 可以存在null。
leecode SQL 176
編寫一個(gè) SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述 Employee 表,SQL查詢應(yīng)該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那么查詢應(yīng)返回 null。
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/second-highest-salary
# Write your MySQL query statement below
SELECT MAX(Salary) as SecondHighestSalary
FROM Employee
WHERE Salary < ( SELECT MAX(Salary)
FROM Employee
)
奇奇怪怪的思路,第二高就是把第一木大了。
Day 2
SQL 181
Employee 表包含所有員工,他們的經(jīng)理也屬于員工。每個(gè)員工都有一個(gè) Id,此外還有一列對(duì)應(yīng)員工的經(jīng)理的 Id。
+----+-------+--------+-----------+
| Id | Name | Salary | ManagerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | NULL |
| 4 | Max | 90000 | NULL |
+----+-------+--------+-----------+
給定 Employee 表,編寫一個(gè) SQL 查詢,該查詢可以獲取收入超過(guò)他們經(jīng)理的員工的姓名。在上面的表格中,Joe 是唯一一個(gè)收入超過(guò)他的經(jīng)理的員工。
+----------+
| Employee |
+----------+
| Joe |
+----------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/employees-earning-more-than-their-managers
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
(待解決?。?!)
SELECT
E.Name AS Employee
FROM
Employee AS E
INNER JOIN Employee AS M
ON E.ManagerId = M.Id
AND E.Salary > M.Salary;
這里自聯(lián)結(jié)的表現(xiàn)比其他方式速度快很多。
SQL 182
編寫一個(gè) SQL 查詢,查找 Person 表中所有重復(fù)的電子郵箱。
示例:
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
根據(jù)以上輸入,你的查詢應(yīng)返回以下結(jié)果:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/duplicate-emails
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
SELECT Email
FROM Person
GROUP BY Email
HAVING count(Email) > 1;
Day 3

SQL 183
某網(wǎng)站包含兩個(gè)表,Customers 表和 Orders 表。編寫一個(gè) SQL 查詢,找出所有從不訂購(gòu)任何東西的客戶。
Customers 表:
+----+-------+
| Id | Name |
+----+-------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
+----+-------+
Orders 表:
+----+------------+
| Id | CustomerId |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
例如給定上述表格,你的查詢應(yīng)返回:
+-----------+
| Customers |
+-----------+
| Henry |
| Max |
+-----------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/customers-who-never-order
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
select Name Customers
from Customers c left join Orders o on c.Id = o.CustomerId
where CustomerId is null;
SELECT NAME AS CUSTOMERS
FROM CUSTOMERS
WHERE ID NOT IN (SELECT CUSTOMERID
FROM ORDERS);
第二種方法速度更快!
SQL 196
編寫一個(gè) SQL 查詢,來(lái)刪除 Person 表中所有重復(fù)的電子郵箱,重復(fù)的郵箱里只保留 Id 最小 的那個(gè)。
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
| 3 | john@example.com |
+----+------------------+
Id 是這個(gè)表的主鍵。
例如,在運(yùn)行你的查詢語(yǔ)句之后,上面的 Person 表應(yīng)返回以下幾行:
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
+----+------------------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/delete-duplicate-emails
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
DELETE p1
FROM Person p1, Person p2
WHERE
p1.Email = p2.Email AND p1.Id > p2.Id;
可以先select找出,id較大的重復(fù)的郵件,隨后刪除。
Day 4
SQL 197
表 Weather
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
id 是這個(gè)表的主鍵
該表包含特定日期的溫度信息
編寫一個(gè) SQL 查詢,來(lái)查找與之前(昨天的)日期相比溫度更高的所有日期的 id 。
返回結(jié)果 不要求順序 。
查詢結(jié)果格式如下例:
Weather
+----+------------+-------------+
| id | recordDate | Temperature |
+----+------------+-------------+
| 1 | 2015-01-01 | 10 |
| 2 | 2015-01-02 | 25 |
| 3 | 2015-01-03 | 20 |
| 4 | 2015-01-04 | 30 |
+----+------------+-------------+
Result table:
+----+
| id |
+----+
| 2 |
| 4 |
+----+
2015-01-02 的溫度比前一天高(10 -> 25)
2015-01-04 的溫度比前一天高(20 -> 30)
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/rising-temperature
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
SELECT w2.Id
FROM Weather w1, Weather w2
WHERE DATEDIFF(w2.RecordDate, w1.RecordDate) = 1
AND w1.Temperature < w2.Temperature
DATEDIFF() 函數(shù)返回兩個(gè)日期之間的天數(shù)。
(這里可用Join,也可以不用)
天數(shù)相差為一,同時(shí)溫度大。
SQL 595
這里有張 World 表
+-----------------+------------+------------+--------------+---------------+
| name | continent | area | population | gdp |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan | Asia | 652230 | 25500100 | 20343000 |
| Albania | Europe | 28748 | 2831741 | 12960000 |
| Algeria | Africa | 2381741 | 37100000 | 188681000 |
| Andorra | Europe | 468 | 78115 | 3712000 |
| Angola | Africa | 1246700 | 20609294 | 100990000 |
+-----------------+------------+------------+--------------+---------------+
如果一個(gè)國(guó)家的面積超過(guò) 300 萬(wàn)平方公里,或者人口超過(guò) 2500 萬(wàn),那么這個(gè)國(guó)家就是大國(guó)家。
編寫一個(gè) SQL 查詢,輸出表中所有大國(guó)家的名稱、人口和面積。
例如,根據(jù)上表,我們應(yīng)該輸出:
+--------------+-------------+--------------+
| name | population | area |
+--------------+-------------+--------------+
| Afghanistan | 25500100 | 652230 |
| Algeria | 37100000 | 2381741 |
+--------------+-------------+--------------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/big-countries
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
select name, population, area
from World
where area > 3000000 or population > 25000000;
SQL
有一個(gè)courses 表 ,有: student (學(xué)生) 和 class (課程)。
請(qǐng)列出所有超過(guò)或等于5名學(xué)生的課。
例如,表:
+---------+------------+
| student | class |
+---------+------------+
| A | Math |
| B | English |
| C | Math |
| D | Biology |
| E | Math |
| F | Computer |
| G | Math |
| H | Math |
| I | Math |
+---------+------------+
應(yīng)該輸出:
+---------+
| class |
+---------+
| Math |
+---------+
提示:
學(xué)生在每個(gè)課中不應(yīng)被重復(fù)計(jì)算。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/classes-more-than-5-students
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
SELECT
class
FROM
courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5
;
HAVING()函數(shù):
在 SQL 中增加 HAVING 子句原因是,WHERE 關(guān)鍵字無(wú)法與聚合函數(shù)一起使用。
HAVING 子句可以讓我們篩選分組后的各組數(shù)據(jù)。
Day 5
SQL 620
今天復(fù)習(xí)一下運(yùn)算符的知識(shí):
SQL 算術(shù)運(yùn)算符
假設(shè)變量 a 的值是:10,變量 b 的值是:20,以下為各運(yùn)算符執(zhí)行結(jié)果:
| + 加法,執(zhí)行加法運(yùn)算。 | a + b 得到 30
| - 減法,執(zhí)行減法運(yùn)算。| a - b 得到 -10
| * 乘法,執(zhí)行乘法運(yùn)算。 | a * b 得到 200
| / 用左操作數(shù)除以右操作數(shù)。 | b / a 得到 2
| % 用左操作數(shù)除以右操作數(shù)并返回余數(shù)。| b % a 得到 0
SQL 比較運(yùn)算符
假設(shè)變量 a 的值是:10,變量 b 的值是:20,以下為各運(yùn)算符執(zhí)行結(jié)果:
| 運(yùn)算符 | 描述 | 例子 |
| = 檢查兩個(gè)操作數(shù)的值是否相等,如果是,則條件為真(true)。
| (a = b) is false. |
| != 檢查兩個(gè)操作數(shù)的值是否相等,如果值不相等則條件為真(true)。
| (a != b) is true. |
| <> 檢查兩個(gè)操作數(shù)的值是否相等,如果值不相等則條件為真(true)。 | (a <> b) is true. |
| > 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是,則條件為真(true)。
| (a > b) is false. |
| < 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是,則條件為真(true)。 | (a < b) is true. |
| >= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是,則條件為真(true)。 | (a >= b) is false |
| <= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是,則條件為真(true)。 | (a <= b) is true. |
| !< 檢查左操作數(shù)的值是否不小于右操作數(shù)的值,如果是,則條件變?yōu)檎?true)。 | (a !< b) is false. |
| !> 檢查左操作數(shù)的值是否不大于右操作數(shù)的值,如果是,則條件變?yōu)檎?true)。 | (a !> b) is true. |
SQL 邏輯運(yùn)算符:
這是在 SQL 所有的邏輯運(yùn)算符的列表。
| 運(yùn)算符 | 描述 |
| ALL | ALL運(yùn)算符用于將值與另一個(gè)值集中的所有值進(jìn)行比較。 |
| AND | AND運(yùn)算符允許在SQL語(yǔ)句的WHERE子句中指定多個(gè)條件。
|
| ANY | ANY運(yùn)算符用于根據(jù)條件將值與列表中的任何適用值進(jìn)行比較。 |
| BETWEEN | BETWEEN運(yùn)算符用于搜索在給定最小值和最大值內(nèi)的值。
|
| EXISTS | EXISTS運(yùn)算符用于搜索指定表中是否存在滿足特定條件的行。 |
| IN | IN運(yùn)算符用于將值與已指定的文字值列表進(jìn)行比較。 |
| LIKE | LIKE運(yùn)算符用于使用通配符運(yùn)算符將值與類似值進(jìn)行比較。 |
| NOT | NOT運(yùn)算符反轉(zhuǎn)使用它的邏輯運(yùn)算符的含義。 例如:NOT EXISTS, NOT BETWEEN, NOT IN等等,這是一個(gè)否定運(yùn)算符。
|
| OR | OR運(yùn)算符用于組合SQL語(yǔ)句的WHERE子句中的多個(gè)條件。 |
| IS NULL | IS NULL運(yùn)算符用于將值與NULL值進(jìn)行比較。 |
| UNIQUE | UNIQUE運(yùn)算符搜索指定表的每一行的唯一性(無(wú)重復(fù)項(xiàng))。 |
某城市開(kāi)了一家新的電影院,吸引了很多人過(guò)來(lái)看電影。該電影院特別注意用戶體驗(yàn),專門有個(gè) LED顯示板做電影推薦,上面公布著影評(píng)和相關(guān)電影描述。
作為該電影院的信息部主管,您需要編寫一個(gè) SQL查詢,找出所有影片描述為非 boring (不無(wú)聊) 的并且 id 為奇數(shù) 的影片,結(jié)果請(qǐng)按等級(jí) rating 排列。
例如,下表 cinema:
+---------+-----------+--------------+-----------+
| id | movie | description | rating |
+---------+-----------+--------------+-----------+
| 1 | War | great 3D | 8.9 |
| 2 | Science | fiction | 8.5 |
| 3 | irish | boring | 6.2 |
| 4 | Ice song | Fantacy | 8.6 |
| 5 | House card| Interesting| 9.1 |
+---------+-----------+--------------+-----------+
對(duì)于上面的例子,則正確的輸出是為:
+---------+-----------+--------------+-----------+
| id | movie | description | rating |
+---------+-----------+--------------+-----------+
| 5 | House card| Interesting| 9.1 |
| 1 | War | great 3D | 8.9 |
+---------+-----------+--------------+-----------+
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/not-boring-movies
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
select id, movie, description, rating
from cinema
where description <> "boring" and id%2 <> 0
order by rating desc;
SQL 627
給定一個(gè) salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交換所有的 f 和 m 值(例如,將所有 f 值更改為 m,反之亦然)。要求只使用一個(gè)更新(Update)語(yǔ)句,并且沒(méi)有中間的臨時(shí)表。
注意,您必只能寫一個(gè) Update 語(yǔ)句,請(qǐng)不要編寫任何 Select 語(yǔ)句。
例如:
| id | name | sex | salary |
|---|---|---|---|
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
運(yùn)行你所編寫的更新語(yǔ)句之后,將會(huì)得到以下表:
| id | name | sex | salary |
|---|---|---|---|
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/swap-salary
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
# Write your MySQL query statement below
update salary
set sex = case sex
when "m" then "f"
else "m"
end;
補(bǔ)充一下 “case when” 的用法:
推薦閱讀這篇,這里就不ctrl + c 了
http://www.itdecent.cn/p/113b21734353
Day 6
出發(fā)前的最后一晚了,剛好也是免費(fèi)的題要刷完了。
SQL 1179
部門表 Department:
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| revenue | int |
| month | varchar |
+---------------+---------+
(id, month) 是表的聯(lián)合主鍵。
這個(gè)表格有關(guān)于每個(gè)部門每月收入的信息。
月份(month)可以取下列值 ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]。
編寫一個(gè) SQL 查詢來(lái)重新格式化表,使得新的表中有一個(gè)部門 id 列和一些對(duì)應(yīng) 每個(gè)月 的收入(revenue)列。
查詢結(jié)果格式如下面的示例所示:
Department 表:
+------+---------+-------+
| id | revenue | month |
+------+---------+-------+
| 1 | 8000 | Jan |
| 2 | 9000 | Jan |
| 3 | 10000 | Feb |
| 1 | 7000 | Feb |
| 1 | 6000 | Mar |
+------+---------+-------+
查詢得到的結(jié)果表:
+------+-------------+-------------+-------------+-----+-------------+
| id | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-------------+
| 1 | 8000 | 7000 | 6000 | ... | null |
| 2 | 9000 | null | null | ... | null |
| 3 | null | 10000 | null | ... | null |
+------+-------------+-------------+-------------+-----+-------------+
注意,結(jié)果表有 13 列 (1個(gè)部門 id 列 + 12個(gè)月份的收入列)。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reformat-department-table
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
select id,
sum(case when month = 'Jan' then revenue end) as Jan_Revenue,
sum(case when month = 'Feb' then revenue end) as Feb_Revenue,
sum(case when month = 'Mar' then revenue end) as Mar_Revenue,
sum(case when month = 'Apr' then revenue end) as Apr_Revenue,
sum(case when month = 'May' then revenue end) as May_Revenue,
sum(case when month = 'Jun' then revenue end) as Jun_Revenue,
sum(case when month = 'Jul' then revenue end) as Jul_Revenue,
sum(case when month = 'Aug' then revenue end) as Aug_Revenue,
sum(case when month = 'Sep' then revenue end) as Sep_Revenue,
sum(case when month = 'Oct' then revenue end) as Oct_Revenue,
sum(case when month = 'Nov' then revenue end) as Nov_Revenue,
sum(case when month = 'Dec' then revenue end) as Dec_Revenue
from department
group by id;
上述代碼的執(zhí)行語(yǔ)序問(wèn)題:
1). from子句,然后 group by 子句 ,大致結(jié)果是這樣(引用圖)

2). select子句 , 共13個(gè)字段(列),第一列為 id , 即部門編號(hào),這個(gè)較好理解。
3). 然后理解剩余12列的值,每有一個(gè)id必然會(huì)有其對(duì)應(yīng)的12列(月份)的值。當(dāng)id=1時(shí),進(jìn)入到經(jīng)過(guò)分組的id為1 的表中,首先為jan_revenue列賦值,遍歷該id表的所有行,通過(guò)case when 選定對(duì)應(yīng)的revenue或null,然后將選定的這些值sum(詳見(jiàn)注解) ,賦值給id的jan_revenue。如此,依次賦值給其他11列。同理,select 其他id值時(shí)進(jìn)入對(duì)應(yīng)id表內(nèi)...
注解:
{ 遍歷整個(gè)id表,針對(duì)每個(gè)月或者說(shuō)針對(duì)每條case when 語(yǔ)句,其實(shí)只有一個(gè)renvenue或根本沒(méi)有,即都是null值。
①'只有一個(gè)revenue' : 按照表的定義,每個(gè)id分組表內(nèi)month列的值絕不會(huì)有重復(fù),也就是說(shuō)一個(gè)部門在某個(gè)月的的收入不會(huì)分為兩條來(lái)記錄,該說(shuō)法也與題目中 'id與month 為聯(lián)合主鍵'的說(shuō)法一致(主鍵唯一)
②'都是null值':id表中沒(méi)有一行的month值為當(dāng)前case when月份所對(duì)應(yīng)的,即在數(shù)據(jù)庫(kù)中,該部門沒(méi)有錄入當(dāng)月的收入。
③'使用sum聚合函數(shù)': 因?yàn)椤挥幸粋€(gè)revenue’,'都是null值',所以使用sum,max,min 等聚合函數(shù)效果都是一樣的。使用sum更易讓人忽略細(xì)節(jié),且更易于讓人粗略的,模糊的結(jié)合group by 接受并理解。
④'不使用類似的聚合函數(shù)':不可以。group by 分組后,在mysql中,若不使用聚合函數(shù)來(lái)提取值,直接select只會(huì)select出當(dāng)前id表的第一行(某個(gè)月份),這也意味著在為當(dāng)前id的12列賦值時(shí),每次都是遍歷這一行。結(jié)果就是只有與與改行月份對(duì)應(yīng)的那個(gè)case when 語(yǔ)句的列會(huì)被賦值為revenue,其他皆判斷為不符合(即該id的其他列都是null值)
⑤其實(shí)不太能理清sum與case語(yǔ)句執(zhí)行的先后關(guān)系,個(gè)人認(rèn)定為先case ,后sum :推翻上述的過(guò)程' 3). ', 為某id部門的某個(gè)月(對(duì)應(yīng)的列)賦值時(shí),先進(jìn)入對(duì)應(yīng)id表,先case when ,遍歷group by 后該id表的第一行(結(jié)合④理解),然后該id的該列被賦值為null或者revenue值,然后發(fā)現(xiàn)外面嵌套聚合函數(shù)sum,返回case when 完整的遍歷該id表,最終根據(jù)具體的聚合函數(shù)形式(此處為sum)得到該id(部門)該列(月份)的最終正確值。該id其他列,以及其他id的各列皆是如此。}
作者:jiachang-a
鏈接:https://leetcode-cn.com/problems/reformat-department-table/solution/guan-yu-pu-bian-jiu-jie-de-group-by-case-d82v/
來(lái)源:力扣(LeetCode)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。