Oracle以15分钟为界,统计一天内各时间段的数据笔数。

Oracle以15分钟为界,统计一天内各时间段的数据笔数。DTIMEV1V2-----------------------------2010092910:22:1320... Oracle以15分钟为界,统计一天内各时间段的数据笔数。
DTIME V1 V2
----------------- ------ ------
20100929 10:22:13 200 200
20100929 10:32:13 200 200
20100929 15:32:06 200 200
20100929 15:42:06 200 200
20100929 16:22:00 300 300
20100929 16:32:00 200 300
20100929 17:01:51 100 100
20100929 17:11:51 100 100
20100929 17:51:45 100 100
20100929 18:01:45 100 100
20100929 18:21:33 0 100
20100929 18:31:33 100 100
这该如何汇总出来呢?只统计各个时间片段内,出现的记录条数。
展开
 我来答
leexiaol1108
推荐于2018-05-14 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:149万
展开全部
我试了下,楼上的做法是可行的,我稍微优化了下,看起来清晰一点。
select count(*),
(case floor((to_char(db_time,'mi'))/15)
when 0 then to_char(db_time,'yyyy.mm.dd hh')||':00:00'
when 1 then to_char(db_time,'yyyy.mm.dd hh')||':15:00'
when 2 then to_char(db_time,'yyyy.mm.dd hh')||':30:00'
when 3 then to_char(db_time,'yyyy.mm.dd hh')||':45:00'
end) as db_time
from table
group by db_time
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c209zhang
2012-05-22 · TA获得超过1328个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:322万
展开全部
这么难得题目都不给点分!试试把,看可不可以!
SELECT count(*),
CASE FLOOR((TO_CHAR(DTIME,'MI'))/15)
WHEN 0 THEN TO_CHAR(DTIME,'YYYYMMDDHH')||'0000'
WHEN 1 THEN TO_CHAR(DTIME,'YYYYMMDDHH')||'1500'
WHEN 2 THEN TO_CHAR(DTIME,'YYYYMMDDHH')||'3000'
WHEN 3 THEN TO_CHAR(DTIME,'YYYYMMDDHH')||'4500'
END as D_TIME
FROM TABLE
GROUP BY D_TIME
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式