[英]MariaDB SQL: Dynamic Columns rather than Rows For Multiple Results Against a Single source
我有一個他們工作的許多部門的聯系人列表,一個聯系人有多少個部門,他們可能有 0 個。當我運行查詢而不是創建聯系人的副本以適應這些多個部門時,是否可以添加額外的應找到多個結果的列?
我現在的結果:
email sector
1 bob@work.com builder
2 bob@work.com construction
3 sally@work.com NULL
4 greg@email.com builder
5 jane@hello.com baker
6 peter@hi.com painter
7 peter@hi.com finance
8 peter@hi.com money-management
期望的結果:
email sector sector2 sector3
1 bob@work.com builder construction NULL
3 sally@work.com NULL NULL NULL
4 greg@email.com builder NULL NULL
5 jane@hello.com baker NULL NULL
6 peter@hi.com painter finance money-management
假設您只想報告 3 個扇區,我們可以在ROW_NUMBER()
的幫助下嘗試 pivot 查詢:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY email ORDER BY sector) rn
FROM yourTable
)
SELECT
email,
MAX(CASE WHEN rn = 1 THEN sector END) AS sector,
MAX(CASE WHEN rn = 2 THEN sector END) AS sector2,
MAX(CASE WHEN rn = 3 THEN sector END) AS sector3
FROM cte
GROUP BY email;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.