⑴ 求高手帮写一sql语句 按月统计的
统计每个id每个月的访问次数。
SELECT
userid,
SUBSTRING(accessTime,
1,
6)
AS
Expr2,
COUNT(*)
AS
Expr1
FROM
TableA
GROUP
BY
userid,
SUBSTRING(accessTime,
1,
6)
此语句查询结果:
1000001
201001
2
1000003
201002
2
1000001
201003
1
1000002
201003
1
------------------
你的知查询和我道的一样。你想要accessTime,这是不可能的,因为SQL语句中使用了group
by子句,那内么select的字段只能在group
by的字句里。
你要清楚,你现在做的是统计,不是查明细。如果容查明细的话,再写一条语句好了。
⑵ oracle数据库中怎么查询当前年每月的天数,按自然月统计,谢谢!
楼上的只统计了一个月的吧
WITHtAS
(SELECTROWNUM
FROMDUAL
CONNECTBYROWNUM<=12)
SELECTTO_CHAR(LAST_DAY(TO_DATE(TO_CHAR(SYSDATE,'YYYY')
||LPAD(TO_CHAR(ROWNUM),2,0),
'YYYYMM'
)
),
'YYYY-MM'
)
||'月',
TO_CHAR(LAST_DAY(TO_DATE(TO_CHAR(SYSDATE,'YYYY')
||LPAD(TO_CHAR(ROWNUM),2,0),
'YYYYMM'
)
),
'DD'
)
||'天'
FROMt
直接全选复制粘贴运行
⑶ oracle 根据里面字段的日期统计出每月总金额的sql语句怎么写在线等
oracle 根据里面字段的日期统计出每月总金额的sql语句怎么写在线等
如果是date型
1
2
3
select to_char(createtime,'yyyymm'),sum(totacaccount) from 表名
where to_char(createtime,'yyyy')=to_char(sysdate,'yyyy')
group by to_char(createtime,'yyyymm')
如果是字符型
1
2
3
select substr(createtime,1,7),sum(totacaccount) from 表名
where substr(createtime,1,4)=to_char(sysdate,'yyyy')
group by substr(createtime,1,7)
⑷ 有关按月统计的oracle sql语句怎么写急!
笨一点的,把月收入和支出汇成一张大表,收入表的支出字段为0,支出表的收入为0,再对id,mon group by
select id,mon,sum(sr) amount_in,sum(zc) amount_out,sum(sr-zc) remain from
(
(select id,to_char(poer_date,'yyyy-mm') mon,amount sr,0 zc from acct_in group by to_char(poer_date,'yyyy-mm'))
union all
(select id,to_char(poer_date,'yyyy-mm') mon,0 sr,amount zc from acct_in group by to_char(poer_date,'yyyy-mm'))
)
group by id,mon;
⑸ 求按月查询统计的sql,oracle
Select 学生编号,性别,case when DatePart('m',年月)=1 then 成绩 else 0 end,case when DatePart('m',年月)=2 then 成绩 else 0 end,case when DatePart('m',年月)=3 then 成绩 else 0 end,case when DatePart('m',年月)=4 then 成绩 else 0 end,case when DatePart('m',年月)=5 then 成绩 else 0 end,case when DatePart('m',年月)=6 then 成绩 else 0 end,case when DatePart('m',年月)=7 then 成绩 else 0 end,case when DatePart('m',年月)=8 then 成绩 else 0 end,case when DatePart('m',年月)=9 then 成绩 else 0 end,case when DatePart('m',年月)=10 then 成绩 else 0 end,case when DatePart('m',年月)=11 then 成绩 else 0 end,case when DatePart('m',年月)=12 then 成绩 else 0 end From 表名
参考下这个
补充:
如果有规律也可以做到,没有规律就不能这样处理了
比如你的200901 是2009年1月 200910 是2009年十月 而没有20091这样的值出现的话
case when 年月=200901 then 成绩 else 0 end 就是一月的了
⑹ oracle数据库,要做一个安月份的统计。。
Select
地点,
Count(*)总次数,
Sum(CaseWhen状态='Yes'then1else0end)正常,
Sum(CaseWhen状态='No'then1else0end)不正常
From
表1
Where
时间Between'2016-06-01'And'2016-06-30'
GroupBy
地点
⑺ Oracle中的SQL查询语句:如何按照表中不同部门,按照录入时间分12个月份统计求和。
--希望解决了楼主的问题
select bm,sum(case when to_char(time,'MM')='01' then fz else 0 end ) 1月份fz合计,
sum(case when to_char(time,'MM')='02' then fz else 0 end ) 2月份fz合计,
sum(case when to_char(time,'MM')='03' then fz else 0 end ) 3月份fz合计,
sum(case when to_char(time,'MM')='04' then fz else 0 end ) 4月份fz合计,
sum(case when to_char(time,'MM')='05' then fz else 0 end ) 5月份fz合计,
sum(case when to_char(time,'MM')='06' then fz else 0 end ) 6月份fz合计,
sum(case when to_char(time,'MM')='07' then fz else 0 end ) 7月份fz合计,
sum(case when to_char(time,'MM')='08' then fz else 0 end ) 8月份fz合计,
sum(case when to_char(time,'MM')='09' then fz else 0 end ) 9月份fz合计,
sum(case when to_char(time,'MM')='10' then fz else 0 end ) 10月份fz合计,
sum(case when to_char(time,'MM')='11' then fz else 0 end ) 11月份fz合计,
sum(case when to_char(time,'MM')='12' then fz else 0 end ) 12月份fz合计 from bmfz
group by bm