計算される指標が複数のテーブルから得られる場合、Union All を使用して、異なるテーブルで計算された指標を組み合わせることができます。Union allの使用条件について:2つのSQL文を結合するフィールドの数同じでなければなりません、そしてフィールドタイプ「互換性がある」(一貫性がある)
さらに、union と Union all の違いを確認してください。union は複数の結果セット内の重複した結果を自動的に圧縮しますが、union all は重複しているかどうかに関係なく、すべての結果を表示します。
結合: 重複行を除く 2 つの結果セットに対して結合演算を実行し、デフォルト ルールに従って並べ替えを実行します。
すべて結合: 重複行を含む 2 つの結果セットに対して結合演算を実行し、並べ替えは実行しません。
グループ化するフィールドが一意であることを確認するにはどうすればよいですか?
一般的に使用される記述方法は 2 つあります。
記述方法 1: グループ化してからすべてを結合し、グループ化フィールドの一意性を確保するために再度グループ化します。
select
group_key,sum(index_a),sum(index_b)
from(
select
group_key,index_a,0 as index_b
from a
group by group_key
union all
select
group_key,0 as index_a,index_b
from a
group by group_key
)
group by group_key
;
書き方 2: 最初にグループ化せず、見つかったすべてのグループ化フィールドを結合してからグループ化します。
select
from
(
select
group_by_key
from
(
select
group_by_key
from t1
union all
select
group_by_key
from t2
)a
group by group_by_key
)a
left outer join t1
left outer join t2