簡體   English   中英

在 PostgresSQL 中透視數據

[英]Pivoting Data in PostgresSQL

我有一張桌子

開始日期 序號 數數 Emp_id
老的 0 1 1
2020-12-07 1 15 1
更多的 2 4 1
全部的 3 20 1
老的 0 15 2
2020-12-07 1 20 2
更多的 2 5 2
全部的 3 40 2

我需要 output 作為

Emp_id 老的 2020-12-07 更多的 全部的
1 1 15 4 20
2 15 20 5 40

有人可以給我一些想法或指出我如何實現所需的 output 的方向嗎?

對於固定的值列表,您可以使用條件聚合:

select emp_id
    max(count) filter(where start_date = 'old'       ) as val_old,
    max(count) filter(where start_date = '2020-12-07') as val_2020_12_07,
    max(count) filter(where start_date = 'More'      ) as val_more,
    max(count) filter(where start_date = 'Total'     ) as val_total
from mytable
group by emp_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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