[英]Combine multiple MySQL rows into one row
這是我目前從我的查詢中得到的:
行號 | 展望 | 熱的 | 合同 |
---|---|---|---|
1 | null | 喬 | null |
1 | 約翰 | null | null |
1 | null | null | 山姆 |
我想得到:
行號 | 展望 | 熱的 | 合同 |
---|---|---|---|
1 | 約翰 | 喬 | 山姆 |
我不能使用連接,因為我仍然需要單獨的列
這是我到目前為止所擁有的...
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=e7aab240b40e40955bac44f616d7f3d7
請注意:最終會有 7 列,但行數會有所不同(即潛在客戶列可能有 20 條記錄,而合同列可能只有 4 或 5 條記錄。
您可以使用條件聚合來做到這一點:
WITH CTE_tbl AS
(
SELECT lead_type,firstname, last_date,
ROW_NUMBER() OVER(PARTITION BY lead_type order by lead_type Desc) as row_no
FROM leads
)
SELECT row_no,
MAX(case when lead_type = 'prospect' then firstname end) prospect,
MAX(case when lead_type = 'hot' then firstname end) hot,
MAX(case when lead_type = 'contract' then firstname end) contract
FROM CTE_tbl
GROUP BY row_no
ORDER BY row_no
見演示。
結果:
行號 | 展望 | 熱的 | 合同 |
---|---|---|---|
1 | 約翰 | 喬 | 山姆 |
2 | 馬里奧 | 秋天 | null |
3 | 坦率 | null | null |
4 | 瑪麗 | null | null |
5 | 史蒂夫 | null | null |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.