首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sum(c1)*sum(c2)和sum(c1*c2)之间的差异

sum(c1)*sum(c2)和sum(c1*c2)之间的差异
EN

Stack Overflow用户
提问于 2017-06-15 22:02:55
回答 3查看 135关注 0票数 0

在SQL语言中,有什么不同的结果或性能

代码语言:javascript
复制
sum(c1) * sum(c2) from t

代码语言:javascript
复制
sum(c1 * c2) from t

我用它来汇总销售总额。

代码语言:javascript
复制
select sum(price * quantity) as total from Bill

那么什么是最好的选择呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-15 22:06:58

垂直和水平的总结..。假设没有空档

代码语言:javascript
复制
declare @mytable table (a int, b int)

insert into @mytable 
values 
(1,1),
(2,3)


select * from @mytable

select sum(a) * sum(b) from @mytable  -- result is 12 .. vertical/column, summarize column first then multiply to other column

select sum(a*b) from @mytable  --- result is 7  .. horizontal/row, summarize the product of a and b
票数 2
EN

Stack Overflow用户

发布于 2017-06-15 22:36:28

这不是SQL的问题。只是基本的数学。假设c1=(0,1)和c2=(2,3)。然后:

代码语言:javascript
复制
sum(c1)*sum(c2) alias... (0+1)*(2+3) = 5

不与相同吗:

代码语言:javascript
复制
sum(c1*c2)      alias... (0*2)+(1*3) = 3
票数 1
EN

Stack Overflow用户

发布于 2017-06-15 22:06:48

零和零是一个关注点。

代码语言:javascript
复制
Declare @YourTable table (C1 money,C2 money)
Insert Into @YourTable values
 (100,10)
,(100,null)

Select sum(c1) * sum(c2)   -- 2000.00
 From @YourTable

Select sum(c1 * c2)        -- 1000.00
 From @YourTable
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44577729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档