【发布时间】:2014-06-02 04:28:01
【问题描述】:
我很少坚持使用 SQL 查询特定场景。
假设我们有以下数据
d1 - Date
d2 - Date
count - number
sum - number
d1 d2 count sum
20-May-14,20-May-14,117.00,201452.45
20-May-14,21-May-14,36.00,72966.37
20-May-14,22-May-14,23,30599.99
20-May-14,23-May-14,9.00,3012345.11
20-May-14,24-May-14,4,2750.46
20-May-14,25-May-14,2,2391.59
20-May-14,26-May-14,11.00,34625.52
20-May-14,27-May-14,2,2891.59
20-May-14,28-May-14,5,6188.79
21-May-14,21-May-14,84.00,192357.77
21-May-14,22-May-14,21,52805.22
21-May-14,23-May-14,13,27730.85
21-May-14,24-May-14,11.00,40361.32
21-May-14,25-May-14,4.00,7431.79
21-May-14,26-May-14,7.00,19903.92
21-May-14,27-May-14,4,6160.74
21-May-14,28-May-14,7.00,11905.57
我想按以下方式对数据进行分组和求和
count & sum when d1=d2(在 d1 当天,例如:当 d1 = 20-May-14, d2 = 20-May-14)
当 d2=d1+1 时计数和求和(d1 的第二天,例如:当 d1 = 20-May-14、d2 = 21-May-14 时)
当 d2=d1+2 时计数和求和(d1 的第二天后,例如:当 d1 = 20-May-14,d2 = 22-May-14 时)
-
当 d2>d1+3 时计数和求和(总计 - 大于 d1 的第二天后,例如:当 d1 = 20-May-14, d2 >= 23-May-14)
我目前正在使用个别条件根据上述结果集查询一个非常大的数据库并手动合并结果。
是否可以查询数据并从表中获取结果作为以下合并信息:
d1,count(d2=d1),sum(d2=d1),count(d2=d1+1), sum(d2=d1+1), count(d2=d1+2),sum(d2=d1+2),count(d2>=d1+3),sum(d2>=d1+3)
20-May-14,117,201452.45,36,72966.37,23,30599.99,33,3061193.06
21-May-14,84,192357.77,21,52805.22,13,27730.85,33,85763.34
【问题讨论】:
-
您的问题解决了吗?