SQL基础教程8(2)GROUPING运算符

GROUPING运算符

  • ROLLUP (MySQL仅支持ROLLUP)
  • CUBE:将 GROUP BY 子句中聚合键的“所有可能的组合” 的汇总结果集中到一个结果中
  • GROUPING SETS:用于从中取出个别条件对应的不固定的结果

只使用GROUP BY子句和聚合函数无法同时得出小计和合计,若想要同时得到,可以使用GROUPING运算符

  • 通常的做法是分别计算出合计行和按照商品种类进行汇总的结果,然后通过 UNION ALL 连接在一起,但是繁琐、 DBMS 内部处理成本非常高
  • UNION ALL和 UNION的不同之处在于它不会对结果进行排序,因此UNION ALL的性能更好

ROLLUP——同时得出合计和小计,一次计算出不同聚合键组合的结果

  • 该操作能够得到像从小计到合计这样,从最小的聚合级开始,聚合单位逐渐扩大的结果
  • 使用ROLLUP时组合的个数是 n + 1
  • ROLLUP的结果一 定包含在CUBE的结果之中
-- 特定MySQL语句
SELECT product_type, SUM(sale_price) AS sum_price
  FROM Product
 GROUP BY product_type WITH ROLLUP;

 

  1. GROUP BY () :没有聚合键,也就相当于没有 GROUP BY 子句(这时会得到全部数据的合计行的记录),该合计行记录称为超级分组记录(super group row),把它当作未使用 GROUP BY 的合计行来理解,超级分组记录默认使用NULL作为聚合键。
  2. GROUP BY (product_type)
  3. GROUP BY (product_type, regist_date)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九号会弹钢琴啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值