近期阅读MICK的《SQK进阶教程》,做到最后一小节“SQL中的层级”(2.10),内心视为一震。我是没有料到这个话题的。

作者从一个众所周知的命题开始,解释了它背后的原理。问题是:
“在SQL中使用GROUP BY聚合之后,不能引用原表中除聚合键之外的列?”
MICK
还是用superstore超市数据举个例子,可以使用Excel透视表计算“不同类别的销售额总和”,或者使用SQL的聚合查询完成。

在这个简单的问题中,“类别”是分类,“销售额总和”是答案(注意,不是“销售额”是答案,而是聚合是答案)。使用如下的SQL轻松完成:
SELECT 类别,SUM(‘销售额’)
FROM superstore
GROUP BY 类别
如果把它改为如下的查询,程序就会出错,它违反了标准SQL的规定。
SELECT 类别,SUM(‘销售额’)
FROM superstore
GROUP BY 类别