如何创建按值范围分组的 SQL 查询

Bra*_*rad 1 sql sql-server

我想创建一个 sql 查询来报告特定范围内的结果百分比。例如

10 到 20 之间的值的 20%

40% 的值在 20 到 32.5 之间

服务器-MSSQL

Joe*_*orn 5

GROUP BY CASE 
         WHEN VALUE >= 10 AND VALUE <= 20 THEN '20%'
         WHEN VALUE > 20 AND VALUE <= 32.5 THEN '40%' ELSE '0' END
Run Code Online (Sandbox Code Playgroud)

您需要覆盖所有可能的值,因此 ELSE 0。您可能想要在那里做一些不同的事情,但它应该给您一个开始。


根据 Joel Gauvreau 的评论:

SUM(CASE WHEN VALUE >=10 AND VALUE <= 20 THEN 1.0 ELSE 0.0 END) / COUNT(*),
SUM(CASE WHEN VALUE > 20 AND VALUE <= 32.5 THEN 1.0 ELSE 0.0 END) / COUNT(*)
Run Code Online (Sandbox Code Playgroud)

或者在查询末尾使用该COMPUTE语句。