在sql中分组

时间:2014-01-02 23:08:49

标签: sql

我是一名SQL菜鸟。我正在写一个查询:

SELECT iif([Cancellation Date] is NULL, 'Not Cancelled', 'Cancelled') as Status,
       SUM(Loss) as [Total Loss]
from INSURANCE_DATA
GROUP by Status;

所以基本上我想根据政策状况汇总损失。 此查询无法运行,因为我正在按此查询中生成的新变量进行分组?

我可以根据这个查询编写另一个查询以获得我想要的内容,但有没有任何有趣的解决方案使我能够在一个查询中完成它?

2 个答案:

答案 0 :(得分:1)

你说得对,你不能在组中使用别名。但是,如果你按价值组建你的小组......

GROUP BY [Cancellation Date] is NULL

然后它实际上是一样的。

答案 1 :(得分:1)

您是否尝试按照您在select中声明的表达式进行分组,而不是引用它的别名?

e.g。

SELECT iif([Cancellation Date] is NULL, 'Not Cancelled', 'Cancelled') as Status,
SUM(Loss) as [Total Loss] from INSURANCE_DATA GROUP BY iif([Cancellation Date] is NULL,
'Not Cancelled', 'Cancelled');