ホームページ > データベース > mysql チュートリアル > 単一の SQL SELECT ステートメント内の 2 つの列間で一致する値のパーセンテージを計算するにはどうすればよいですか?

単一の SQL SELECT ステートメント内の 2 つの列間で一致する値のパーセンテージを計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-28 19:58:10
オリジナル
273 人が閲覧しました

How to Calculate the Percentage of Matching Values Between Two Columns in a Single SQL SELECT Statement?

SQL の単一 SELECT ステートメント内の SUM() からのパーセンテージの計算

2 つの整数フィールド ('value_a' を含む 'my_obj' テーブルのコンテキスト内)および「value_b」)、「value_a」が次の値に等しいインスタンスの割合を決定しようとします。 'value_b'.

シンプルで効率的な方法

最適なパフォーマンスと簡素化のために、次の修正されたクエリを検討してください:

SELECT property_name
      ,(count(value_a = value_b OR NULL) * 100) / count(*) AS pct
FROM   my_obj
GROUP  BY 1;
ログイン後にコピー

これこのアプローチでは、「count()」の機能を活用して「NULL」値を無視し、両方の値を確実に無視します。列が考慮されます。一致する値の数に 100 を掛け、合計数で割ることで、パーセンテージが計算されます。

SELECT property_name
      ,round((count(value_a = value_b OR NULL) * 100.0) / count(*), 2) AS pct
FROM   my_obj
GROUP  BY 1;
ログイン後にコピー
小数点以下の桁を含む

結果として、計算では「100」の代わりに「100.0」を使用し、次の使用を検討してください。 'round()':この改訂版では、計算が数値のままであることが保証され、小数値が保持され、レポートされるパーセンテージの精度が向上します。

以上が単一の SQL SELECT ステートメント内の 2 つの列間で一致する値のパーセンテージを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート