> 文章列表 > sql compute

sql compute

sql compute

什么是'.sql compute.'

'.sql compute.'是一种SQL Server Transact-SQL语法,用于计算表达式的值并将结果存储在计算列中。计算列是一列,其值是通过对其他列执行一个表达式来确定的。

'.sql compute.'的语法

'.sql compute.'的语法如下:
COMPUTE aggregate_function ( expression )
BY grouping_expression [, grouping_expression...]
[(second_computed_column_expression)]
[(third_computed_column_expression)]
...
[ORDER BY column_expression [ASC | DESC] [, column_expression [ASC | DESC]]... ]
通过这个语法,你可以使用聚合函数计算表达式的结果并按照指定的分组列对结果进行分组。你还可以定义一个或多个计算列,这些列的值是通过对其他列执行表达式来确定的。最后,你可以使用ORDER BY子句按列排序。

使用'.sql compute.'的例子

以下是使用'.sql compute.'的示例:
USE AdventureWorks2012;
GO
SELECT SalesOrderID, ProductID, OrderQty, UnitPrice, LineTotal
COMPUTE SUM(LineTotal)
BY SalesOrderID, ProductID;
这个查询将Sales.SalesOrderDetail表中的数据加以计算,将每个产品的销售总额按销售订单和产品ID分组计算。它还为每个计算列列出了一个列标题。

使用'.sql compute.'的注意事项

使用'.sql compute.'时,需要注意以下事项:
- 在计算列中不能使用计算列的结果。
- 如果你使用了ORDER BY子句,则它必须是最后一个子句。
- 如果你使用了GROUP BY子句,则BY关键字是可选的。
- 如果你在计算列中使用了计算列,则指定的顺序很重要。例如,无法在第二个计算列中使用第三个计算列的值,因为第三个计算列不会在第二个计算列之前计算。

'.sql compute.'与'.sql rollup.'的区别

'.sql compute.'和'.sql rollup.'都用于聚合数据,但是它们有一些区别:
- '.sql compute.'按照指定的分组列对结果进行分组,并且可以添加一个或多个计算列来计算其他值。它不能创建嵌套的聚合。
- '.sql rollup.'根据指定的分组列创建多个聚合,并且可以创建嵌套聚合。它还可以生成总计行和子总计行。