ホームページ >データベース >mysql チュートリアル >SQL SELECT クエリで一致する値の割合を計算するにはどうすればよいですか?
同じ SELECT クエリ内の SUM() からパーセンテージを計算する
整数フィールド value_a と value_b が存在する my_obj テーブルでは、目標は、value_a が等しい回数のパーセンテージを決定することです。 value_b.不正な試行:
select sum(case when o.value_a = o.value_b then 1 else 0 end) as nb_ok, sum(case when o.value_a != o.value_b then 1 else 0 end) as nb_not_ok, compute_percent(nb_ok,nb_not_ok) from my_obj as o group by o.property_name;クエリ内に nb_ok 列が存在しないため、このアプローチは失敗します。
最適化済み解決策:
SELECT property_name ,(count(value_a = value_b OR NULL) * 100) / count(*) AS pct FROM my_obj GROUP BY 1;
説明:
結果:
property_name | pct --------------+---- prop_1 | 17 prop_2 | 43
小数桁の代替:
SELECT property_name ,round((count(value_a = value_b OR NULL) * 100.0) / count(*), 2) AS pct FROM my_obj GROUP BY 1;このバリエーション小数点以下の桁を保持するために小数点以下の桁を導入します。
以上がSQL SELECT クエリで一致する値の割合を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。