SQL 聯集語法 每一位員工的主要歸屬部門 Leetcode #1789

更新 發佈閱讀 5 分鐘


題目敘述

題目會給我們一張Employee 資料表。裡面分別有employee_id、department_id 、primary_flag 等欄位。其中(employee_id, department_id) 是這張資料表的複合主鍵Primary key。


要求我們列出每一位員工的主要歸屬部門ID

主要歸屬部門ID定義:

當一位員工只有一個department_id時,那個部門就是主要歸屬部門。

當一位員工擁有多個department_id時,primary_flag標記為"Y"的那個部門就是主要歸屬部門。

輸出答案時,順序不拘


Table: Employee

+---------------+---------+
| Column Name | Type |
+---------------+---------+
| employee_id | int |
| department_id | int |
| primary_flag | varchar |
+---------------+---------+
(employee_id, department_id) is the primary key (combination of columns with unique values) for this table.
employee_id is the id of the employee.
department_id is the id of the department to which the employee belongs.
primary_flag is an ENUM (category) of type ('Y', 'N'). If the flag is 'Y', the department is the primary department for the employee. If the flag is 'N', the department is not the primary.

詳細的題目可在這裡看到


約束條件

主要歸屬部門ID定義:

  1. 當一位員工擁有多個department_id時,primary_flag標記為"Y"的那個部門就是主要歸屬部門。
  2. 當一位員工只有一個department_id時,那個部門就是主要歸屬部門。

輸出答案時,順序不拘


演算法- 聯集UNION操作

這題的考點主要在於把題目中的主要部門的OR運算,轉成等價的SQL查詢語法 UNION

如果還不熟SQL聯及操作的讀者,請參考UNION 語法的教學。


條件1. 當一位員工只有一個department_id時,那個部門就是主要歸屬部門。

條件2. 當一位員工擁有多個department_id時,primary_flag標記為"Y"的那個部門就是主要歸屬部門。


思考與解題邏輯如下:

當滿足條件1 條件2,則該部門為主要歸屬部門。

<=> 當滿足條件1 OR 條件2,則該部門為主要歸屬部門。

<=> 滿足條件1的SQL查詢結果 聯集 滿足條件2的SQL查詢結果。

<=> 滿足條件1的SQL查詢結果 UNION 滿足條件2的SQL查詢結果。

<=>

#滿足條件1的SQL查詢結果

SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = "Y"

#聯集
UNION

#滿足條件2的SQL查詢結果
SELECT employee_id, department_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(department_id) = 1;



程式碼- 聯集UNION操作

# For employee who has multiple department labels
SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = "Y"
UNION
# For employee who has only one department label
SELECT employee_id, department_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(department_id) = 1;

關鍵知識點

當原本的要求 滿足條件1 OR 滿足條件2 很難在一次SQL內寫完時,可以先拆解,再取對應等價的邏輯操作。

因為這題是 OR,對應到的SQL查詢結果合併的語法就是UNION取聯集


Reference:

[1] MySQL with ...table 1 UNION ...table 2 [w/ Comment] - Primary Department for Each Employee - LeetCode

留言
avatar-img
小松鼠的演算法樂園
99會員
428內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/01/01
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table:
Thumbnail
2024/01/01
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table:
Thumbnail
2023/12/29
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
2023/12/29
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
2023/12/26
題目敘述 題目會給我們一張Tweets資料表。裡面分別有tweet_id、content等欄位。這張資料表的tweet_id是主鍵Primary key。 題目要求我們列出所有非法的推文。輸出順序不拘。 非法推文的定義,推文內容的長度超過15個字元。
Thumbnail
2023/12/26
題目敘述 題目會給我們一張Tweets資料表。裡面分別有tweet_id、content等欄位。這張資料表的tweet_id是主鍵Primary key。 題目要求我們列出所有非法的推文。輸出順序不拘。 非法推文的定義,推文內容的長度超過15個字元。
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
在部門管理中,文件化將部門職掌呈現出來,是非常、非常、非常關鍵的作業。本文將說明為何要定義與如何定義部門職掌的方式。
Thumbnail
在部門管理中,文件化將部門職掌呈現出來,是非常、非常、非常關鍵的作業。本文將說明為何要定義與如何定義部門職掌的方式。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
EP11精華重點:   1.盤點利害關係人,畫出同心圓圖,中心是公司,往外層層是股東、員工、客戶、供應商、銀行、輔導單位等。 2.穩固既有利害關係人關係,考慮每個決策對他們的影響,做好溝通補償。 3.擴展人脈關係鏈,參加活動、講座、使用名片管理軟體、建立資料庫。 4.維繫人脈,發送電子報、
Thumbnail
EP11精華重點:   1.盤點利害關係人,畫出同心圓圖,中心是公司,往外層層是股東、員工、客戶、供應商、銀行、輔導單位等。 2.穩固既有利害關係人關係,考慮每個決策對他們的影響,做好溝通補償。 3.擴展人脈關係鏈,參加活動、講座、使用名片管理軟體、建立資料庫。 4.維繫人脈,發送電子報、
Thumbnail
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
Thumbnail
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
Thumbnail
你接到一個很重要的專案,其中蘊含了許多非你專業可評估的需求。因此,你要從兩位同事中挑一位副手加入專案團隊。你會怎麼做?
Thumbnail
你接到一個很重要的專案,其中蘊含了許多非你專業可評估的需求。因此,你要從兩位同事中挑一位副手加入專案團隊。你會怎麼做?
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
曾有遇到某公司資深人資說,要能入職他們公司行政職位的基礎是excel會樞紐分析,而且面試時會直接拿電腦給求職者操作! 行政工作很常需要各種數據 ,在會議上回覆老闆的快問快答。 我在學樞紐分析時,最大的卡關在,不知道哪個要放在「欄」,哪個放在「列」!這時候,最會excel的ChatGPT就派上用場囉!
Thumbnail
曾有遇到某公司資深人資說,要能入職他們公司行政職位的基礎是excel會樞紐分析,而且面試時會直接拿電腦給求職者操作! 行政工作很常需要各種數據 ,在會議上回覆老闆的快問快答。 我在學樞紐分析時,最大的卡關在,不知道哪個要放在「欄」,哪個放在「列」!這時候,最會excel的ChatGPT就派上用場囉!
Thumbnail
「人力盤點」在組織管理中常被提起,本文會說明「人力盤點」的定義、本質與方法,希望透過了解本質再來使用這項管理手法,才能發揮其效用。
Thumbnail
「人力盤點」在組織管理中常被提起,本文會說明「人力盤點」的定義、本質與方法,希望透過了解本質再來使用這項管理手法,才能發揮其效用。
Thumbnail
題目敘述 題目會給我們一張Employee 資料表。裡面分別有employee_id、department_id 、primary_flag 等欄位。其中(employee_id, department_id) 是這張資料表的複合主鍵Primary key。 要求我們列出每一位員工的主要歸屬
Thumbnail
題目敘述 題目會給我們一張Employee 資料表。裡面分別有employee_id、department_id 、primary_flag 等欄位。其中(employee_id, department_id) 是這張資料表的複合主鍵Primary key。 要求我們列出每一位員工的主要歸屬
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
為活動安排適合的工作分組,不僅可以幫助活動流暢,往更遠一點看,能幫助大家提升其專業分工上能力,例如一開始只能當一位接待員,但經驗累積後,主管就可以放手給其承擔各大領導角色。這樣的思維可能顛覆傳統職場上對下關係,但對一個組織長遠發展跟經驗傳承是好的。本文以一場200人研討會規格,試著列出所需人力分組。
Thumbnail
為活動安排適合的工作分組,不僅可以幫助活動流暢,往更遠一點看,能幫助大家提升其專業分工上能力,例如一開始只能當一位接待員,但經驗累積後,主管就可以放手給其承擔各大領導角色。這樣的思維可能顛覆傳統職場上對下關係,但對一個組織長遠發展跟經驗傳承是好的。本文以一場200人研討會規格,試著列出所需人力分組。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News