group by 与compute对比

在整理sql语句的过程中,觉得这两个有点相似,拿出来比比。

 

GROUP BY子句返回的结果集中只有合计数据,而没有原始的详细记录。

COMPTE生成合计作为附加的汇总列出现在结果集的最后,当与BY一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。

 

光看这两句,可能还有点模糊,我们先看下面的例子。

 

举例说明(目的:使用pubs数据库的titles表,生成price和advance的求和统计):

 

1、仅使用compute子句

SELECT type, price, advance

FROM titles

ORDER BY type

COMPUTE SUM(price), SUM(advance)

 group by 与compute对比 - 贾琳(shan9liang) - 贾琳的博客

 

2、在 COMPUTE 子句中加入BY 关键字:

SELECT type, price, advance

FROM titles

ORDER BY type

COMPUTE SUM(price), SUM(advance) BY type

group by 与compute对比 - 贾琳(shan9liang) - 贾琳的博客
 

3、仅使用group by子句:

SELECT type, SUM(price), SUM(advance)

FROM titles

GROUP BY type

 group by 与compute对比 - 贾琳(shan9liang) - 贾琳的博客

 

我们看到:

在第三张图中,仅使用group by子句的结果集中,只有合计数据,而没有原数据的明细。

在第一张图中仅使用compute子句的结果集中既有原数据,又把合计结果放到了最后。

在第二张图中,使用computeby子句的结果用12 个结果集返回,六个组中的每个组都有两个结果集。每个组的第一个结果集是一个行集,其中包含选择列表中所请求的信息(原数据)。每个组的第二个结果集包含 COMPUTE 子句中两个 SUM 函数的合计结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值