背景需要对多个维度的数据做不同维度的聚合操作,正常情况下你想要的统计维度需要单独通过一个SQl来实现,那么有多个维度可能就需要多个SQl。举个例子,有班级、性别、分数,现在我想要统计每个班级的平均分数每类性别的平均分数统计每个班级、每类性别下的平均分数那么假想的情况是select class,avg(score) from XXXXX group by class
select sex,avg(score) from XXXXX group by sex
select class,sex,avg(score) from XXXXX group by class,sexgrouping setsok,到这里就会引出今天要讲的 grouping sets 了,它的优势就是可以使用一条SQL来完成上述的需求。select
grouping__id, -- 内置变量,只要使用grouping sets就可以调用
class,
sex,
avg(score) as avg_score
from
XXXXX
group by
class,
sex
grouping sets(
class,
sex,
(class, sex)
)这里会出现一个关键词 grouping__id ,这个 grouping__
...
继续阅读
(65)