web-dev-qa-db-ja.com

SQLステートメントでパーセンテージを計算する方法は?

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@
--------------------------------------------------------------------

そして今、私は一致したデータとパーセンテージの形で一致しないデータが欲しいのですが、それは可能ですか?

1
seepana avinash

テーブルのパーセンテージを計算したいとします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上記。

0
harrymc