データ品質レポートの一部として2つの表を比較したいと思います。空白でないtable_aでcolumn_x値の別の選択肢にない個別の値の数の選択
- パーセント
- における異なる値のtable_a
- 数の別個の値の数:結果は表table_aとtable_bの列column_xをまとめた3つの列でなければなりませんtable_bにないtable_aは
列1及び2は、セットアップが簡単です:
select
sum(CASE WHEN column_x = '' THEN 0 ELSE 1 END)/count(*) AS percent_complete_in_a, -- column 1
count(DISTINCT column_x) AS distinct_values_A -- column 2
from table_A
しかし、カラム3が同じ結果に現れるようにクエリを書く方法を理解することはできません。私は、次のようにいくつかのバリエーションを試してみたが、それぞれがPostgresの中に構文エラーがスローされます。
select
sum(CASE WHEN column_x = '' THEN 0 ELSE 1 END)/count(column_x) AS percent_complete_in_a, -- column 1
count(DISTINCT column_x) AS distinct_values_A, -- column 2
count(DISTINCT column_x where column_x not in (select DISTINCT column_x FROM table_b)) as distinct_values_A_except_B -- column 3
from table_a
は、それがすべての3つの列を表示するには、このクエリを構築する方法はありますか?