我有一個包含如下資料的表:
| 姓名 | ID | 部門 |
|---|---|---|
| 喬 | 1001 | 會計 |
| 喬 | 1001 | 營銷 |
| 瑪麗 | 1003 | 行政 |
| 瑪麗 | 1009 | 會計 |
每行都由名稱和 ID 的組合唯一標識。我希望結果表將具有相同名稱和 ID 的行組合在一起,并將它們的部門放在一起,按字母順序用逗號分隔。所以結果是:
| 姓名 | ID | 部門 |
|---|---|---|
| 喬 | 1001 | 會計、市場營銷 |
| 瑪麗 | 1003 | 行政 |
| 瑪麗 | 1009 | 會計 |
我不知道如何解決這個問題。到目前為止,我有這個,它并沒有真正滿足我的需要:
SELECT Name, ID, COUNT(*)
FROM employees
GROUP BY Name, ID
我知道 COUNT(*) 在這里無關緊要,但我不知道該怎么做。任何幫助表示贊賞!順便說一句,我正在使用 PostgreSQL,而且我是該語言的新手。
uj5u.com熱心網友回復:
顯然,PostgreSQL 有一個用于字串連接的聚合函式。在此處查找檔案。嘗試以下操作:
SELECT Name, ID, string_agg(Dept, ', ' ORDER BY Dept ASC) AS Departments
FROM employees
GROUP BY Name, ID
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/426896.html
標籤:sql PostgreSQL
