【格物致知52】SQL中的“层级”(order)与问题的层次(level)

近期阅读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 类别

发布者:喜乐君

喜乐君 | Tableau Partner,Tableau Desktop and Server QA Certification

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s

%d 博主赞过: