SQL进行排序、分组、统计的10个新技巧(3)

作者:lll 时间:2009-01-23 13:59:00 

8.统计聚合数据

你可以继续统计数据为每个分组显示一个分类统计。SQL的ROLLUP操作符可以为每个分组显示一个额外的分类统计。这个分类统计是使用聚合函数计算每个分组中的所有记录得到的结果。下面的语句为每个分组计算OrderTotal:

SELECT Customer, OrderNumber, Sum(Cost * Quantity)

AS OrderTotal FROM Orders GROUP BY Customer,

OrderNumber WITH ROLLUP
 
对于有两个分别为20和25 OderTotal值的分组,ROLLUP显示一个OrderTotal值45。ROLLUP结果中的第一条记录是唯一的,因为它是计算所有分组记录,这个值是整个记录集的总值。

ROLLUP在聚合函数中不支持 DISTINCT,也不支持GROUP BY ALL语句。

9.统计每个列

CUBE操作符比ROLLUP更进一步,它返回每个分组中重复值的个数。它的结果和ROLLUP相同,但是对每位客户的每一列CUBE包含一个额外的记录。下面的语句显示每个分组的统计和额外每位客户的统计。

SELECT Customer, OrderNumber, Sum(Cost * Quantity)
AS OrderTotal FROM Orders GROUP BY Customer,
OrderNumber WITH CUBE
 
CUBE可以给最综合的统计。它不仅完成聚合和ROLLUP的功能,还可以计算定义分组的其它列,换句话说,CUBE统计每个可能的列组合。

CUBE不支持GROUP BY ALL语句。

10:对统计结果排序

当CUBE的结果令人迷惑时(它经常是这样),可以添加一个GROUPING函数,如下所示:

SELECT GROUPING(Customer), OrderNumber,

Sum(Cost * Quantity) AS OrderTotal FROM Orders GROUP

BY Customer, OrderNumber WITH CUBE
 
结果中每行包含两个额外的值:

值1表示左边的值是一个统计值,是ROLLUP或CUBE的操作符。

值0表示左边的值是一条由最初的GROUP BY语句产生的详细记录。

标签:
0
投稿

猜你喜欢

  • linux 后台日志 mysql 错误异常的解释(推荐)

    2024-01-26 06:01:42
  • sql 分组查询问题

    2024-01-21 05:50:00
  • Go语言基础go fmt命令使用示例详解

    2024-01-31 11:37:34
  • 在ASP中用FormatDateTime格式化日期

    2010-08-08 19:16:00
  • python中*args与**kwarsg及闭包和装饰器的用法

    2023-07-24 00:43:34
  • python set()去重的底层原理及实例

    2021-08-30 05:04:11
  • SQL Server表空间碎片化回收的实现

    2024-01-21 14:08:43
  • 详解pytest实现mark标记功能详细介绍

    2022-01-16 23:59:48
  • 解决pytorch 的state_dict()拷贝问题

    2022-10-05 22:03:57
  • python截取两个单词之间的内容方法

    2022-06-02 01:48:46
  • python监控日志中的报错并进行邮件报警

    2023-10-14 02:18:30
  • 连接Python程序与MySQL的教程

    2024-01-26 15:02:57
  • python3使用scrapy生成csv文件代码示例

    2021-03-21 04:36:24
  • python statsmodel的使用

    2021-04-22 13:38:13
  • Python实现将蓝底照片转化为白底照片功能完整实例

    2021-06-08 21:40:55
  • golang中gin框架接入jwt使用token验证身份

    2024-02-19 15:12:28
  • JS原生轮播图的简单实现(推荐)

    2024-04-29 14:06:30
  • python编程进阶之类和对象用法实例分析

    2022-04-01 23:59:03
  • 使用vue制作探探滑动堆叠组件的实例代码

    2024-04-28 09:25:26
  • python队列queue模块详解

    2023-03-28 17:26:02
  • asp之家 网络编程 m.aspxhome.com