我有下表。第一列是Object Id,然后是对象大小,最后是特定对象的销售时间。
Object Price Moment
A 100 2014-10-10 22:12:00
B 105 2014-10-10 22:12:44
A 100 2014-10-10 22:14:12
C 203 2014-10-10 22:15:02
B 105 2014-10-10 22:17:34
D 68 2014-10-10 22:42:01
C 203 2014-10-10 22:43:02
通过使用以下sql,我得到所有对象的价格总和,每15分钟售出一次。
SELECT
Date(Moment) Date,
sec_to_time(time_to_sec(Moment) - time_to_sec(Moment)%(15*60)) 15MinInterval,
Sum(Price) PriceSum
FROM table
GROUP BY
Date,
15MinInterval
ORDER BY
Date,
15MinInterval
这很有效,我得到的结果是:
2014-10-10 22:00:00 305
2014-10-10 22:15:00 308
2014-10-10 22:30:00 271
我需要的是,我找不到一种方法,就是每15分钟计算一次所有DISTINCT对象的价格总和。因此,对于特定的表,我需要得到以下结果:
2014-10-10 22:00:00 205
2014-10-10 22:15:00 308
2014-10-10 22:30:00 271
你能帮忙吗?
答案 0 :(得分:1)
尝试在子查询中使用DISTINCT
SQL小提琴:http://sqlfiddle.com/#!2/fc040/9
SELECT
Date,
15Interval 15MinInterval,
Sum(Price) PriceSum
FROM
(SELECT DISTINCT
OBJECT,
Price,
Date(Moment) Date,
sec_to_time(time_to_sec(Moment) - time_to_sec(Moment)%(15*60)) AS 15Interval
FROM mytable) temp
GROUP BY
Date,
15MinInterval
ORDER BY
Date,
15MinInterval
输出