我有一张桌子:
PROCEDURE
---------
id INT
SERVICE_TYPE VARCHAR(20)
TIMEUNITS (INT)
UNITS (INT)
我正在尝试运行此sql代码:
select SERVICE_TYPE,
case when TIMEUNITS > 1 THEN SUM(1)
WHEN UNITS > 1 THEN SUM(UNITS)
END
group by SERVICE_TYPE
我的问题是我被告知TIMEUNITS没有分组也没有汇总......
如何修复此查询? 感谢
答案 0 :(得分:2)
对于条件聚合,case
表达式是聚合函数的参数。例如,要获取timeunits > 1
:
select SERVICE_TYPE,
sum(case when timeunits > 1 then 1 else 0 end)
from t
group by SERVICE_TYPE;