2つのSQLテーブルがあります。2つのテーブルを比較したいです。2つのテーブルの比較が完了しました。一致するレコードと一致しないレコードの数がパーセンテージの形式で表示されます。SQLでクエリを記述してパーセンテージを取得することはできますか?これが私のテーブルです
src_table
----------------------------------------------------------------
src_table
----------------------------------------------------------------
1
2
3
a
b
c
a@
b@
c@
-----------------------------------------------------------------
そしてtgt_tableは
-----------------------------------------------------------------
tgt_data
-----------------------------------------------------------------
1
4
5
a
e
f
a@
e@
f@
--------------------------------------------------------------------
そして今、私は一致したデータとパーセンテージの形で一致しないデータが欲しいのですが、それは可能ですか?
テーブルのパーセンテージを計算したいとしますtgt_data
。そうでない場合は、以下のテーブル名を交換してください。
クエリは、SQL製品の機能によって異なります。サブクエリを含む複雑な式を処理できない場合は、式を複数のステートメントに分割する必要があります。
計算したい式は次のとおりです。
(select count(*) * 100 from tgt_data t where exists
(select * from src_table where src_col = t.tgt_col))
/
(select count(*) from tgt_data)
1つのSELECTステートメントとして定式化する必要がある場合、これは代替の定式化です。
select
(select count(*) * 100 from tgt_data t where exists
(select * from src_table where src_col = t.tgt_col))
/ count(*)
from tgt_data
製品がこれを整数演算で計算し、結果を10進数で表示したい場合は、100
沿って 100.0
上記。