【发布时间】:2015-10-15 12:20:28
【问题描述】:
我有以下 SQL:
select distinct cat, sum(cnt)
from
(
select distinct prcIncidentManagement.CallCategory cat, count(eFolder.eFolderName) cnt
from prcIncidentManagement
inner join eFolder
on prcIncidentManagement.EFOLDERID=eFolder.eFolderID
group by prcIncidentManagement.CallCategory
union all
select distinct prcRequestFulfilment.CallCategory cat, count(eFolder.eFolderName) cnt
from prcRequestFulfilment
inner join eFolder
on prcRequestFulfilment.EFOLDERID=eFolder.eFolderID
group by prcRequestFulfilment.CallCategory
) results
order by 1
我发现很难将总计和分组与呼叫类别相加,因为错误消息如下:
选择列表中的列“results.cat”无效,因为它不是 包含在聚合函数或 GROUP BY 子句中
无论如何?
【问题讨论】:
-
你也需要一个顶级的 GROUP BY。
-
在查询中同时具有 DISTINCT 和 聚合(GROUP BY、SUM)是非常非常罕见的事情。你到底想达到什么目的?为什么 GROUP BY 还不够?为什么您认为必须对聚合结果使用 DISTINCT?
-
你到底想在这里数什么? 看起来您只是在计算一个类别的 prcIncidentManagement 和 prcRequestFulfilment 中有多少记录。是这样还是背后有更多?
标签: sql sql-server