gpt4 book ai didi

sql - 了解SQL中的ROLLUP

转载 作者:行者123 更新时间:2023-12-03 16:06:24 24 4
gpt4 key购买 nike

我认为CUBE只是生成所有排列,但是我在使用ROLLUP时遇到了麻烦。在网上或我正在阅读的书中似乎没有任何有用的资源来为像我这样的人解释SQL。

我的书说ROLLUP是CUBE运算符的特例,它排除了所有未遵循结果层次结构的情况。

我不确定是什么意思,但是在我做成的表上运行它会产生一些有用的结果。

我从Google的另一个页面制作了一个表格,如下所示:

Type        Store       Number
Dog Miami 12
Cat Miami 18
Turtle Tampa 4
Dog Tampa 14
Cat Naples 9
Dog Naples 5
Turtle Naples 1

然后这是我所做的查询:
select store,[type], SUM(number) as Number from pets

group by store, [type]

with rollup

这告诉我每家商店中每种宠物的数量,以及每家商店中宠物的总数,这很酷。如果我想查看基于宠物的查询,我发现我必须按顺序切换组,因此类型排在第一位。

那么汇总基于第一个group by子句吗?

另一个问题是,当您拥有“年和月”列以阻止其在多年中汇总同一月时,我读到您使用ROLLUP而不是CUBE。我想我理解这意味着什么,但是有人可以澄清吗?以及如何设置它呢?

您还可以使用ROLLUP排除其他列组合吗?我上面的表格非常简单,查询显示“按商店分类的宠物”,但是如果还有其他列,您可以在结果中包括/排除它们吗?

最佳答案

最好通过一个例子来解释。假设您按ABC分组。然后,您可以通过汇总获得以下分组:

(A, B, C)
(A, B)
(A)
()

因此,您已经知道,顺序很重要。如果按 ACB分组,则会得到以下分组:
(A, C, B)
(A, C)
(A)
()

关于sql - 了解SQL中的ROLLUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com