いてづきブログ

情シスでやってみたことの備忘録

UNIONとGROUP BY

複数の異なったテーブル群からの取得結果を同一に扱うにはUNIONを用いる。

select ....
UNION
select ....

みたいな。取得する列の数はselect文全部で一緒にさせないといけない。


今回業務で使ったSQLはさらに、上位のテーブルのデータがあれば、それを優先して使うという仕様だった。

なので、各SQL文に

1 AS RANK

2 AS RANK

というふうに優先順位を埋め込み、優先で選ぶカラムをGROUP BYして、条件としてHAVING MIN(RANK)として、ランクが高いものを用いるようにした。

ついこの前社内の講習で習ったけど「???」な感じだったけど、こうして実際に使うことで有用性を理解できました。