具有聚合功能的SQL GROUP BY CASE语句

问题描述 投票:45回答:4

我有一列看起来像这样:

CASE
    WHEN col1 > col2 THEN SUM(col3*col4)
    ELSE 0
END AS some_product

而且我想将其放在我的GROUP BY子句中,但这似乎会引起问题,因为列中有一个聚合函数。在这种情况下,是否有办法按some_product之类的列别名进行GROUP BY,还是我需要将其放在子查询中并在其上分组?

sql sql-server sql-server-2005 group-by
4个回答
53
投票

我的猜测是,您真的不想要GROUP BY some_product。


38
投票
虽然Shannon's answer从技术上讲是正确的,但看起来有些过分。

3
投票
如果按其他值分组,则不是您所拥有的,

0
投票
我认为答案很简单(除非我遗漏了什么?)
© www.soinside.com 2019 - 2024. All rights reserved.