求和之前要计算两行的数据总和列

时间:2018-07-23 22:15:30

标签: sql sql-server tsql

我有一个包含多列的表

Code    Events    Time    AVG
A       1         1       1
B       2         2       1
C       10        5       2

我需要对事件和总行进行求和,但是当涉及到特定代码(B和C)时,我需要将事件除以二,然后将该数字包括在总和中。

所以上面的输出将是

TotalEvents    TotalTime
7              4.5

事件总数= 1 +(2/2)+(10/2)= 7

总时间= 1+(2/2)+(5/2)= 4.5

感谢您的协助。 谢谢

1 个答案:

答案 0 :(得分:1)

这是您想要的吗?

select sum(case when code in ('B', 'C') then events / 2.0 else events end) as total_events,
       sum(case when code in ('B', 'C') then time / 2.0 else time end) as total_time
from t;