有没有办法根据同一个表中的多个条件获得多个计数? 例如。计算天数小于15,并计算15至30天。
答案 0 :(得分:13)
是的,您可以合并SUM和CASE:
SELECT
SUM(CASE WHEN condition1 THEN 1 ELSE 0 END) count1,
SUM(CASE WHEN condition2 THEN 1 ELSE 0 END) count2
FROM yourtable
因此,对于您的具体示例:
SELECT
SUM(CASE WHEN days < 15 THEN 1 ELSE 0 END) count1,
SUM(CASE WHEN days BETWEEN 15 AND 30 THEN 1 ELSE 0 END) count2
FROM yourtable
如果大多数行都有days > 30
,则可能需要在查询结尾添加WHERE days <= 30
作为优化。另请注意,BETWEEN包括两个终点。