按时间段分组的问题~ 想把表中的数据按时间段进行分组显示,按天分组的话:group by trunc(alm_date),要是按2小时分组呢,不知道怎么做了~望高手指点~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 group by to_number(to_char(alm_date,'yyyymmddhh24'))-mod(to_number(to_char(alm_date,'hh24')),2)SQL> select to_char(sysdate,'yyyymmddhh24') from dual; TO_CHAR(SYSDATE,'YYYYMMDDHH24'------------------------------2010111711SQL> select to_number(to_char(sysdate,'yyyymmddhh24'))-mod(to_number(to_char(sysdate,'hh24')),2) from dual; TO_NUMBER(TO_CHAR(SYSDATE,'YYY------------------------------ 2010111710 --minitoy这个就能满足,只是如果你想显示区段名称,那么可以这样做:--下面做个测试,测试数据伴随sysdate 变化with t as(select 100+level rid,'00000000'||(Mod(LEVEL,4)) client_version_code, LEVEL login_count,SYSDATE+LEVEL*24/3600 login_time from dual connect by level<=30)SELECT to_char(Min(login_time),'hh24')||'--'||to_char(Max(login_time),'hh24') 时间段,Sum(decode(client_version_code,'000000000',login_count)) 版本一,Sum(decode(client_version_code,'000000001',login_count)) 版本二,Sum(decode(client_version_code,'000000002',login_count)) 版本三,Sum(decode(client_version_code,'000000003',login_count)) 版本四,Sum(login_count) 总计from tGROUP BY to_number(to_char(login_time,'hh24'))-mod(to_number(to_char(login_time,'hh24')),2)ORDER BY 1 ;--结果:时间段 版本一 版本二 版本三 版本四 总计---------------------------------------------------12--13 12 15 18 21 6614--15 48 51 54 57 21016--17 52 54 56 27 189 centos安装oracle 11g解压出现错误 请教高手,windows2000 sp4安装ORACLE8.1.7出错 多数据库link问题 帮忙推荐一个DBA吧~北京,美资,年薪20w oracle problem! 在oracle数据库中,如何建立两帐数据表的主外键关系? 怎么可以看oracle的关于数据的插入,删除,修改的日志 下载什么版本的oracle? 请教!为何任何用户都可以以“SYSDBA”身份登录? ORACLE缺失表达式是为什么? oralce11g数据库服务端字符集更改问题 oracle导入数据,已有用户是否需要重新创建?
TO_CHAR(SYSDATE,'YYYYMMDDHH24'
------------------------------
2010111711SQL> select to_number(to_char(sysdate,'yyyymmddhh24'))-mod(to_number(to_char(sysdate,'hh24')),2) from dual;
TO_NUMBER(TO_CHAR(SYSDATE,'YYY
------------------------------
2010111710
--下面做个测试,测试数据伴随sysdate 变化with t as(
select 100+level rid,'00000000'||(Mod(LEVEL,4)) client_version_code, LEVEL login_count,
SYSDATE+LEVEL*24/3600 login_time from dual
connect by level<=30)
SELECT
to_char(Min(login_time),'hh24')||'--'||to_char(Max(login_time),'hh24') 时间段,
Sum(decode(client_version_code,'000000000',login_count)) 版本一,
Sum(decode(client_version_code,'000000001',login_count)) 版本二,
Sum(decode(client_version_code,'000000002',login_count)) 版本三,
Sum(decode(client_version_code,'000000003',login_count)) 版本四,
Sum(login_count) 总计
from t
GROUP BY to_number(to_char(login_time,'hh24'))-mod(to_number(to_char(login_time,'hh24')),2)
ORDER BY 1 ;--结果:
时间段 版本一 版本二 版本三 版本四 总计
---------------------------------------------------
12--13 12 15 18 21 66
14--15 48 51 54 57 210
16--17 52 54 56 27 189