sql中的compute和compute by

本文介绍如何在SQL SERVER中使用COMPUTE BY子句生成分组汇总数据,通过实例展示了如何为结果集添加合计列以及如何生成各组小计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GROUP BY子句有个缺点,就是返回的结果集中只有合计数据,而没有原始的详细记录。如果想在SQL SERVER中完成这项工作,可以使用COMPUTE BY子句。COMPTE生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。

下列 SELECT 语句使用简单 COMPUTE 子句生成 titles 表中 price 及 advance 的求和总计:

USE pubsSELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance)


下列查询在 COMPUTE 子句中加入可选的 BY 关键字,以生成每个组的小计:

USE pubsSELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance) BY type

此 SELECT 语句的结果用12 个结果集返回,六个组中的每个组都有两个结果集。每个组的第一个结果集是一个行集,其中包含选择列表中所请求的信息。每个组的第二个结果集包含 COMPUTE 子句中两个 SUM 函数的小计。

COMPUTE和COMPUTE BY是SQL用于在查询结果添加汇总行或汇总列的命令。下面是它们的详细用法: COMPUTE COMPUTE命令用于在查询结果的末尾添加汇总行。它的语法如下: ``` SELECT column1, column2, ..., columnN, aggregate_function(columnX) FROM table_name [WHERE condition] GROUP BY column1, column2, ..., columnN COMPUTE [aggregate_function(columnX)] ``` 其,aggregate_function是一个聚合函数,如SUM、AVG、COUNT等。这个命令会在查询结果的末尾添加一行,该行将显示每个聚合函数的结果。 例如,以下SQL查询将返回每个城市的平均人口数量,并在结果末尾添加一个汇总行,显示所有城市的平均人口数量: ``` SELECT city, AVG(population) FROM cities GROUP BY city COMPUTE AVG(population) ``` COMPUTE BY COMPUTE BY命令用于在查询结果添加汇总列。它的语法如下: ``` SELECT column1, column2, ..., columnN, aggregate_function(columnX) FROM table_name [WHERE condition] GROUP BY column1, column2, ..., columnN COMPUTE [aggregate_function(columnX)] BY columnY ``` 其,columnY是一个用于分组的列,如年份、部门等。这个命令将在每个分组的末尾添加一列,该列将显示每个聚合函数的结果。 例如,以下SQL查询将返回每个部门的销售总额,并在每个年份的末尾添加一个汇总列,显示该年度所有部门的销售总额: ``` SELECT department, year, SUM(sales) FROM sales GROUP BY department, year COMPUTE SUM(sales) BY year ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值