我的问题并不是很好,但下面应该更好地解释
SELECT time(starttime) AS time, num_Sold
FROM shop_1
WHERE (CAST( starttime AS date )='2016-06-07'
AND time(starttime)>'07:00:00' AND zone_name='till_1')
这打印出以下
start No.
Time Sold
07:00:00 0
07:05:00 0
07:10:00 0
07:15:00 1
07:20:00 2
07:25:00 9
07:30:00 8
07:35:00 8
07:40:00 4
07:45:00 1
07:50:00 10
07:55:00 10
08:00:00 19
现在我要总结半小时内售出的号码,所以从7:00:00到7:29:59(7.25将是5分钟到7:30的开始时间)。我怎样才能遍历半小时的街区。
所以我想要一个结果
07:00:00 12
07:30:00 41
....
它可以是从07:00开始的1/2小时或者从07:30开始的1/2小时
答案 0 :(得分:0)
这是一个如何每隔5分钟截断日期的示例。
select trunc(TO_DATE('07/06/2016 10:22:05', 'DD/MM/YYYY HH:MI:SS'), 'mi')
- mod(EXTRACT(minute FROM cast(TO_DATE('07/06/2016 10:22:05', 'DD/MM/YYYY HH:MI:SS') as timestamp)), 5) / (24 * 60)
from dual;
最好你做一个" trunc_minut_function"使用此SQL,然后在num_Sold中使用GROUP BY和SUM。
类似
select trunc_minut_function(starttime), SUM(num_Sold) .....
GROUP BY trunc_minut_function(starttime)