`
yangzy666
  • 浏览: 19477 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

Oracle---按各种时间分组统计的sql

阅读更多

如下表table1:

日期(exportDate)               数量(amount)
--------------                    -----------

14-2月 -08                       20
10-3月 -08                       2
14-4月 -08                       6
14-6月 -08                       75
24-10月-09                      23
14-11月-09                      45
04-8月 -10                       5
04-9月 -10                       44
04-10月-10                      88


注意:为了显示更直观,如下查询已皆按相应分组排序

1.按年份分组

select to_char(exportDate,'yyyy'),sum(amount) from table1 group by to_char(exportDate,'yyyy')

order by to_char(exportDate,'yyyy');

年份      数量

-----------------------------
2008    103

2009    68
2010    137

 

2.按月份分组

select to_char(exportDate,'yyyy-mm'),sum(amount) from table1 group by to_char(exportDate,'yyyy-mm')

order by to_char(exportDate,'yyyy-mm');

月份           数量

-----------------------------

2008-02    20
2008-03    2
2008-04    6
2008-06    75
2009-10    23
2009-11    45
2010-08    5
2010-09    44
2010-10    88

 

3.按季度分组

select to_char(exportDate,'yyyy-Q'),sum(amount) from table1 group by to_char(exportDate,'yyyy-Q')

order by to_char(exportDate,'yyyy-Q');

季度          数量

------------------------------

2008-1    22
2008-2    81
2009-4    68
2010-3    49
2010-4    88

 

4.按周分组

select to_char(exportDate,'yyyy-IW'),sum(amount) from table1 group by to_char(exportDate,'yyyy-IW')

order by to_char(exportDate,'yyyy-IW');

周             数量

------------------------------

2008-07    20
2008-11    2
2008-16    6
2008-24    75
2009-43    23
2009-46    45
2010-31    5
2010-35    44
2010-40    88

 

补充

按季度分组还有个比较笨的方法(参考网络资源)

select  to_char(exportDate,'yyyy'),
sum(decode(to_char(exportDate,'mm'),'01',amount,'02',amount,'03',amount,0)) as 第一季,
sum(decode(to_char(exportDate,'mm'),'04',amount,'05',amount,'06',amount,0)) as 第二季,
sum(decode(to_char(exportDate,'mm'),'07',amount,'08',amount,'09',amount,0)) as 第三季,
sum(decode(to_char(exportDate,'mm'),'10',amount,'11',amount,'12',amount,0)) as 第四季

from table1

group by to_char(exportDate,'yyyy');

年份        第一季     第二季     第三季     第四季

--------------------------------------------------

2009         0            0            0          68
2010         0            0            49        88
2008         22          81          0          0

 

 

 

 

 

分享到:
评论

相关推荐

    SQL之分组统计和子查询专题

    李兴华老师ORACLE数据库,分组统计和子查询专题深入详解

    Oracle数据库按时间进行分组统计数据的方法

    Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14-2月 -08 20 10-3月 -08 2 14-4月 -08 6 14-6月 -08 75 24-10月-09 23 14-11月-09 45 04-8月 -10 5 ...

    使用Oracle的SQL函数实现工作日和节假日分组统计.pdf

    使用Oracle的SQL函数实现工作日和节假日分组统计.pdf

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from ....

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    提高Oracle数据库查询统计速度 14 Oracle中巧取指定记录 14 Oracle数据安全 15 Oracle字段上建立并使用索引 29 用Windows脚本宿主自动化Oracle工具 31 进程结构和内存结构 32 Oracle监控数据库性能的SQL汇总 36 ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    oracle函数大全.doc

    SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar...

    经典SQL脚本大全

    │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理...

    Oracle数据库、SQL

    13.1按范式要求设计表结构 23 13.2多表连接的种类 23 13.3交叉连接 23 13.4内连接 23 13.5外连接 25 13.6非等值连接 27 13.7表连接总结 27 十四、 集合 28 14.1表连接主要解决的问题 28 14.2集合运算 28 14.3集合...

    Oracle数据库SQL语句优化策略

    基本的Sql编写注意事项 尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替 用IN写出来的SQL的优点是比较容易写及清晰易懂,但是用IN...一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。

    oracle sql &plsql

    内容分为2大部分,1-13章为oracle sql,介绍了sql*plus的使用,基本查询语句,单行函数,多表查询,组函数和分组统计。。。。。。

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    10.2 描述SQL中可用的各种类型的转换函数 359 10.3 使用TO_CHAR、TO_NUMBER 和TO_DATE转换函数 361 10.4 在SELECT语句中应用条件表达式 368 10.4.1 嵌套函数 368 10.4.2 条件函数 369 10.5 本章知识点回顾 375...

    Sqlserver2000经典脚本

    纵.sql │ 复杂年月处理.sql │ 统计--交叉表+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数....

    oracle实验报告

    PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的...

    OracleSQL入门级PPT教程汇总

    教程名称:Oracle SQL入门级PPT教程汇总课程目录:【】第1章 简单查询语句【】第2章 限定查询和排序【】第3章 单行函数【】第4章 多表查询【】第5章 组函数和分组统计 资源太大,传百度网盘了,链接在附件中,有需要...

    经典SQL语句大全

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

    SQL语句集锦.rar

    工作中常用的SQL + 超复杂SQL 交叉连接查询corss.txt 公交线路问题.txt 。。。。 充储过程--sql0.sql 分割字符串.txt 分布式查询.txt 分组排列进行更新.txt 别名.txt 动态SQL语句.txt 动态语句.txt 区分大小写.txt ...

Global site tag (gtag.js) - Google Analytics