select max(years) || '年第' || week || '周',count(1)
成都创新互联成立于2013年,是专业互联网技术服务公司,拥有项目成都网站设计、做网站、成都外贸网站建设公司网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元蒸湘做网站,已为上家服务,为蒸湘各地企业和个人服务,联系电话:028-86922220
from (select to_char(Y_TIME, 'yyyy') years,
to_char(Y_TIME+to_char(trunc(Y_TIME,'yyyy'),'d')-2,'WW') week
from T_B) group by week order by max(years),week
其中Y_TIME为你数据的时间字段,T_B为你要查询的表,查出每周数据量
查询结果示例如下:
2012年第31周 340
2012年第42周 6
2012年第43周 35
2012年第46周 7655
2013年第03周 18
2013年第04周 4
2013年第05周 2
2013年第06周 8
写个大概意思,毕竟我并不知道你的表结构是什么样的。
你的表格是什么样的,特别是回见结构,如果是“年月日时分秒”结构的,那么首先单独截取"时"(不是截取年月日时,而是单独截取时),截取范围是4,这样出来的结果是每天0-4点的所有值。
然后开始考虑分组,你说的是每年每月的平均值,那么分组应该是“年月”,然后再avg一下你要平均的值应该就可以了。
你好,如果格式都如你贴图的一样的话可以用这种最笨的方式全一个个化成数值型,然后相加取值。
select CHECK_NORM,
(to_number(substr(CHECK_INFO, 1, 4)) +
to_number(substr(CHECK_INFO, 6, 4)) +
to_number(substr(CHECK_INFO, 11, 4)) +
to_number(substr(CHECK_INFO, 16, 4)) +
to_number(substr(CHECK_INFO, 21, 4)) +
to_number(substr(CHECK_INFO, 26, 4)) +
to_number(substr(CHECK_INFO, 31, 4)) +
to_number(substr(CHECK_INFO, 36, 4)) +
to_number(substr(CHECK_INFO, 41, 4)) +
to_number(substr(CHECK_INFO, 46, 4))) / 10
from 表名;
如果格式不统一,建议如2楼的,把字符型中的‘/’全部替换成‘+’,然后拼接出来一个sql,执行处理。
望采纳,谢谢。
************AVG()函数使用方法:*******
SQL desc test
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
SQL select * from test;
ID
----------
1
11
SQL select avg(ID) from test;
AVG(ID)
----------
6