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