簡體   English   中英

使用雪花 sql 將多行平展為 1 行

[英]flatten multiple rows in to 1 row using snowflake sql

我有一張這樣的桌子:

id  col1 col2 col3 col4
1   Y    N    N    N  
1   N    N    Y    N
1   N    Y    N    N
1   N    N    N    N

我希望它看起來像這樣:

id col1 col2 col3 col4
1  Y    Y    Y    N

我怎樣才能做到這一點

您可以使用MAX()

select id, max(col1), max(col2), max(col3), max(col4)
from t
group by id;

如果想要的值不是自然高(因此您可以使用 MAX)或自然低(因此使用 MIN),那么您可以並且您正在尋找可以將其編碼為的單個狀態

IFF(SUM(IFF(value = <target>,1,0)>0,<target>,<non-target>)

這確實應該通過BOOLOR_AGG完成(其中包含您發布的確切示例)。

select id, boolor_agg(col1), boolor_agg(col2), boolor_agg(col3), maxboolor_agg(col4)
from t
group by id;

否則,如果你真的超出了假設的logical or看起來你想要更復雜的值聚合,你將需要解釋更多。

暫無
暫無

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

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