Oracle 取过去一个小时每分钟的数据应该如何写sql?

我现在有一张表A,里面有一个字段是time字段,插入一条数据的时候都会带有time字段,time字段的格式为2015/11/255:29:58,现在需要统计每分钟有多少条... 我现在有一张表A,里面有一个字段是time字段,插入一条数据的时候都会带有time字段,time字段的格式为2015/11/25 5:29:58,现在需要统计每分钟有多少条数据插入,应该如何去写?需要统计过去一个小时每分钟,如果没有插入数据则为0,谢谢。 展开
 我来答
badkano
2015-12-08 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885373
团长

向TA提问 私信TA
展开全部

写个例子吧

创建表、插入数据:

create table a
(time date);

insert into a values (to_date(20151208150101,'yyyymmddhh24miss'));

执行:

with t as
(select rownum rn from dual connect by rownum<=60)
select t.rn-1 rn,sum(case when t.rn-1=to_char(a.time,'mi') then 1 else 0 end) from t left join a on t.rn=to_char(a.time,'mi') and to_char(a.time,'yyyy-mm-dd hh24:mi:ss') between 
'2015-12-08 15:00:00' and '2015-12-08 15:59:59'
group by t.rn
order by t.rn

结果:

其中rn代表分钟数

一路在走000
推荐于2017-10-06
知道答主
回答量:24
采纳率:0%
帮助的人:5.7万
展开全部

思路: 按照分钟进行分组统计,如果需要统计之前1个小时,再加入where条件即可。

下面是按照分钟分组的sql:

SELECT 
        count(*)
FROM  A
WHERE time>= sysdate - 1/24
GROUP BY to_char(time ,'yyyymmdd hh24:mi');

当然这个也可以变异为按每小时,每天,每月统计插入多少条数据,只需要修改日期格式即可。
实测是可行的,请楼主结贴给分。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0319a0e
2015-12-08 · TA获得超过2.2万个赞
知道小有建树答主
回答量:2080
采纳率:85%
帮助的人:1156万
展开全部
select mi_time,count(*)

from
(
select col1,col2,col3,col4.., to_char(time,'mi') mi_time)
from t
where time>sysdate -1/24
)
group by mi_time
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苦乐一辈子
2015-12-08 · TA获得超过1536个赞
知道大有可为答主
回答量:1410
采纳率:64%
帮助的人:1044万
展开全部
select count(*) from A where time>= sysdate-1/24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式