oracle 按时间段分类查询

gdfg34324 2011-07-19 03:54:29
有一个表ta
字段a
字段b
a b
2 09:12:00
5 09:18:36

现在要求对按时间段每隔一小时对a字段进行求和?
...全文
249 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2011-07-19
  • 打赏
  • 举报
回复
with ta as (
select 2 a, '09:12:00' b from dual union all
select 5 a, '09:18:36' b from dual)
SELECT t.st, nvl(SUM(a),0) total_a
FROM ta,
(SELECT lpad(LEVEL - 1, 2, '0') st, lpad(LEVEL, 2, '0') et
FROM dual
CONNECT BY LEVEL <= 24) t
WHERE ta.b(+) >= t.st
AND ta.b(+) < t.et
GROUP BY t.st
order by st;
tangren 2011-07-19
  • 打赏
  • 举报
回复
SELECT t.st, SUM(ta.a)
FROM ta,
(SELECT lpad(LEVEL - 1, 2, '0') st, lpad(LEVEL, 2, '0') et
FROM dual
CONNECT BY LEVEL <= 24) t
WHERE ta.b >= t.st
AND ta.b < t.et
GROUP BY t.st;
BenChiM888 2011-07-19
  • 打赏
  • 举报
回复

select trunc(b,'hh24') as logdate,sum(a)
from ta
group by trunc(b,'hh24');
gdfg34324 2011-07-19
  • 打赏
  • 举报
回复
达人出现吧

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧