簡體   English   中英

MariaDB SQL:針對單個來源的多個結果使用動態列而不是行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM