質問: 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@ -------------------------------------------------------------------- そして今、私は一致したデータとパーセンテージの形で一致しないデータが欲しいのですが、それは可能ですか?
回答: テーブルのパーセンテージを計算したいとします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上記。