小弟有有一个表TOTAL_BROWSE_LOGIN_INC,字段如下ID NUMBER(18) N PK: SEQ_BROWSE_LOGIN
BROWSE_ AMOUNT NUMBER N
LOGIN_AMOUNT NUMBER N
USER_TYPE NUMBER(1) N 1、 管局用户 2、 前置用户 3、 接入商
ISPID NUMBER(18) Y FK:YHGL_BADWXX(ID)
RECORDTIME DATE N 现在要一条SQL统计,最终实现如下效果:昨日数据 一个周平均 一个月平均 三个月平均
12 20 10 11现在小弟不知道如何写了,请各位高手帮忙
BROWSE_ AMOUNT NUMBER N
LOGIN_AMOUNT NUMBER N
USER_TYPE NUMBER(1) N 1、 管局用户 2、 前置用户 3、 接入商
ISPID NUMBER(18) Y FK:YHGL_BADWXX(ID)
RECORDTIME DATE N 现在要一条SQL统计,最终实现如下效果:昨日数据 一个周平均 一个月平均 三个月平均
12 20 10 11现在小弟不知道如何写了,请各位高手帮忙
解决方案 »
- sql select 指定那些字段不被查出来
- 求救啊,大家都回家了,可怜可怜我们这苦命的菜鸟啊
- 如何將oracle的table、function、procedure、trigger轉入Mysql?
- 请教一句SELECT的写法
- 【求助】Oracle 数据库中 blob字段问题
- 手动安装数据库的怪问题,一定要高手
- oracle 两表联合查询 急呀
- 使用Database Configuration Assistant使用General Purpose模板,里面的关于默认配置是自动产生还是每次都相同?
- 关于join
- 客户端配置问题?ORA-12545 : 因目标主机或对象不存在
- 高手来看看,此SQL可优化或简写的地方
- oracle多用户登录
from (
--昨天统计
select sum(t.browse_amount) as yesterday,0 as lastweek,0 as lastmonth,0 as lastquarter
from total_browse_login_inc t
where to_char(t.recordtime,'yyyy-mm-dd')=to_char(sysdate-1,'yyyy-mm-dd')
union all
--本周统计
select 0 as yesterday,sum(t.browse_amount) as lastweek,0 as lastmonth,0 as lastquarter
from total_browse_login_inc t
where to_char(t.recordtime,'iw')=to_char(sysdate,'iw')
union all
--本月统计
select 0 as yesterday,0 as lastweek,sum(t.browse_amount) as lastmonth,0 as lastquarter
from total_browse_login_inc t
where to_char(t.recordtime,'mm')=to_char(sysdate,'mm')
union all
--本季度统计
select 0 as yesterday,0 as lastweek,0 as lastmonth,sum(t.browse_amount) as lastquarter
from total_browse_login_inc t
where to_char(t.recordtime,'q')=to_char(sysdate,'q')
)
用case when 来判断时间!效率会高一点!
可是先把总的数据找出,然后再CASE WHEN 将数据分开,此大大提高执行效率