在SQL 語句中計算百分比
問題:
問題:
答案:選項1:使用over()
select Grade, count(*) * 100.0 / sum(count(*)) over() from MyTable group by Grade
此解決方案是最有效的,並且利用了over() 函數。
選項 2:通用(任何 SQL 版本)select Grade, count(*) * 100.0 / (select count(*) from MyTable) from MyTable group by Grade;
此選項適用於任何 SQL 版本,但可能比以前的效率低一。
選項 3:使用 CTE(最低效率)with t(Grade, GradeCount) as ( select Grade, count(*) from MyTable group by Grade ) select Grade, GradeCount * 100.0/(select sum(GradeCount) from t) from t;雖然此方法提供了靈活的解決方案,但效率最低。
以上是如何在 SQL 中計算成績百分比而不預先定義所有可能的成績?的詳細內容。更多資訊請關注PHP中文網其他相關文章!