員工表:employee
+---------------+---------+
| column name | type |
+---------------+---------+
| employee_id | int |
| team_id | int |
+---------------+---------+
employee_id 欄位是這張表的主鍵,表中的每一行都包含每個員工的 id 和他們所屬的團隊。
編寫乙個 sql 查詢,以求得每個員工所在團隊的總人數。
查詢結果中的順序無特定要求。
查詢結果格式示例如下:
employee table:
+-------------+------------+
| employee_id | team_id |
+-------------+------------+
| 1 | 8 |
| 2 | 8 |
| 3 | 8 |
| 4 | 7 |
| 5 | 9 |
| 6 | 9 |
+-------------+------------+
result table:
+-------------+------------+
| employee_id | team_size |
+-------------+------------+
| 1 | 3 |
| 2 | 3 |
| 3 | 3 |
| 4 | 1 |
| 5 | 2 |
| 6 | 2 |
+-------------+------------+
id 為 1、2、3 的員工是 team_id 為 8 的團隊的成員,
id 為 4 的員工是 team_id 為 7 的團隊的成員,
id 為 5、6 的員工是 team_id 為 9 的團隊的成員。
審題:編寫乙個 sql 查詢,以求得每個員工所在團隊的總人數。
思考:查詢id後邊的團隊id求和。
解題:
select employee_id,
(select count(*) from employee e2
where e1.team_id = e2.team_id) as team_size
from employee e1
-- 練習
select employee_id (select count(*) from employee e2
where e1.team_id = e2.team_id)as team_size
from employee e1;
方法二:left join
select e1.employee_id, count(*) team_size
from employee e1 left join employee e2
on e1.team_id = e2.team_id
group by e1.employee_id;
-- 通過left join
select e1.employee_id,count(*) team_size
from employee e1 left join employee e2
on e1.team_id = e2.team_id
group by e1.employee_id;
知識點: LeetCode實戰 求眾數
you may assume that the array is non empty and the majority element always exist in the array.example 1 input 3 2,3 output 3example 2 input 2 2,1 1,1 ...
leetcode 演算法 求眾數 169
leetcode 傳送門 給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 本題是求陣列 現次數大於一半的元素。乙個基...
Leetcode 求眾數 Python實現
題目 求眾數 給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 輸入 3,2,3 輸出 3 輸入 2,2,1,1,1,2,2 輸出 2 分析 馬上能想到的,就是構建數頻字典,然後找出數量大於n 2的元素即...