【发布时间】:2021-07-21 02:52:32
【问题描述】:
我正在尝试编写一个显示 ID 列和自定义计算的查询。
Select c.ID,
CASE
WHEN m.TYPE='Category 1'
THEN ROUND((COUNT(c.ID)-sum(m.TICKETS))/COUNT(C.ID),2)
END Custom_Calc
from Master_Data M
inner join Collection_Data C
on M.CASE__C=C.ID
group by
c.ID
当我运行这个查询时,它会产生一个错误
ORA-00979: 不是 GROUP BY 表达式
我知道我需要在group by 子句中包含m.Type,但我不想看到该级别的数据。它为每个ID 生成两行。理想情况下,我只想要每个ID 一行。我也尝试过OVER (PARTITION BY ()) 子句,但它总是要求我按我不想要的类型对结果进行分组。这对计算很重要。
有人可以帮我解决这个问题吗?非常感谢。
【问题讨论】:
-
把它翻过来;
count(case when ...). -
如果我把它变成 SUM(Case WHEN..) 那么我仍然得到 ORA-00937: not a single-group group function 错误
标签: sql oracle aggregate-functions