将SQL SUM一起添加的首选语法

Joh*_*lly 1 sql database aggregate-functions

我想退回总销售额.也就是说整个数据集的UnitPrice + TaxAmount.我可以用两种不同的方式编写SQL查询,返回相同的结果.

SELECT SUM(UnitPrice + TaxAmount) AS 'TotalSales' FROM Sales
Run Code Online (Sandbox Code Playgroud)

要么

SELECT SUM(UnitPrice) + SUM(TaxAmount) AS 'TotalSales' FROM Sales
Run Code Online (Sandbox Code Playgroud)

这些查询中的一个是否可以在另一个上执行(性能还是其他)?或者这仅仅是品味问题?

OMG*_*ies 9

使用:

SELECT SUM(UnitPrice) + SUM(TaxAmount) AS 'TotalSales' 
  FROM Sales
Run Code Online (Sandbox Code Playgroud)

...因为如果多个值为NULL,则using SUM(UnitPrice + TaxAmount)可以返回NULL.你可以将它们包装在COALESCE中:

SELECT SUM(COALESCE(UnitPrice, 0) + COALESCE(TaxAmount, 0))
Run Code Online (Sandbox Code Playgroud)

更新

我没有看到两种方法之间的性能差异,并且看到SUM()+ SUM()更安全的NULL只是将交易密封给我.