基于两个变量的总和记录

时间:2015-02-08 15:14:51

标签: sql-server

我正在尝试达到一个月内达到的点击次数,我尝试了几种SUM公式但是我被卡住了,你能帮我解决这个问题吗? 我从数据库中检索了第1个月和第2个月的总点击数,因为你可以看到有2种源类型,1和2以及几种命中类型1到6。 目标是找到按来源分组的时段上每种类型的匹配数。

Source  type        number         time
1        1          200            2015-02-01 00:00:25.000
1        2          350            2015-02-01 00:00:25.000
1        3           50            2015-02-01 00:00:25.000
1        4         1000            2015-02-01 00:00:25.000
2        1          360            2015-01-01 00:00:20.000
2        2           30            2015-01-01 00:00:20.000
2        3          500            2015-01-01 00:00:20.000
2        4          250            2015-01-01 00:00:20.000
1        1          200            2015-01-01 00:00:20.000
1        2          350            2015-01-01 00:00:20.000
1        3           50            2015-01-01 00:00:20.000
1        4         1000            2015-01-01 00:00:20.000
2        1          360            2015-02-01 00:00:25.000
2        2           30            2015-02-01 00:00:25.000
2        3          500            2015-02-01 00:00:25.000
2        4          250            2015-02-01 00:00:25.000

实施例 2月命中数

Source1 Sum(type1+type4) of 2015-01-01  - Sum(type1+type4) of 2015-02-01

我知道它似乎很困惑但是我找到解释的唯一方法。

提前致谢

卡洛斯

1 个答案:

答案 0 :(得分:1)

您是否希望每月将金额拆分为不同的列?

select 
    Source, 
    sum(case when time >= '20150101' and time < '20150201' then number else 0 end) as Jan,
    sum(case when time >= '20150201' and time < '20150301' then number else 0 end) as Feb
from
    table
where
    type in (1,4)
group by
    source

如果您还需要使用不同类型的单独列,则必须将该类型也添加到case -statement。