【SQL】集約関数でまとめるとき論理和が取れるboolor()とかboolor_agg()って便利ね
postgresとかだとboolorでできるみたいだけどsnowflakeでもboolor_aggで出来る。 www.fixes.pub
こんなデータがあります
create temp table test_boolean_agg( id integer, c1 boolean ); insert into test_boolean_agg (id, c1) values (1, true), (2, true), (3, false), (3, false), (4, true), (4, true), (4, false), (3, true), (5, false), (5, false);
この時に、idでgroup byしつつ、 idが同じ同士でc1カラムで論理和取れたりとかしたら素敵じゃない?
例えば複数のイベントで、同じIDのカウントを取りつつ、フラグかtrueなものがきたかどうかは知りたい・・・みたいな。
こうする
select id, boolor_agg(c1), count(*) from test_boolean_agg group by 1;
ID BOOLOR_AGG(C1) COUNT(*) 1 TRUE 1 2 TRUE 1 3 TRUE 3 4 TRUE 3 5 FALSE 2
便利。