`
shuai1234
  • 浏览: 977673 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

oracle 查询按月份分组

 
阅读更多

 

如下表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

 

 

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

 

 

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

1.按年份分组
  select to_char(exportDate,'yyyy'),sum(amount) from table1 group by to_char(exportDate,'yyyy');
  年份      数量
  -----------------------------
  2009    68
  2010    137
  2008    103

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

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

 

分享到:
评论

相关推荐

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

    2. **按月份分组**: 类似地,可以按月份进行分组,同时保持年份信息: ```sql SELECT to_char(exportDate, 'yyyy-mm'), SUM(amount) FROM table1 GROUP BY to_char(exportDate, 'yyyy-mm') ORDER BY to_char...

    Oracle数据库使用分组函数来对数据进行聚集

    Oracle数据库使用分组函数来对数据进行聚集

    oracle分组函数

    - **查询所有员工每个月的工资总和和平均工资**:这需要按照月份对数据进行分组,并计算每个月的工资总和和平均工资。 - **查询工资最高和最低的金额**:这可以通过使用`MAX()`和`MIN()`函数来实现。 - **查询公司的...

    Oracle查询语句集锦

    4. **聚合函数与GROUP BY**:`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`等聚合函数用于对一组值进行计算,配合`GROUP BY`可以按指定列分组。例如,统计每个部门的员工数量:`SELECT departments.dept_name, COUNT...

    oracle上机任务答案使用教程

    此查询统计了一年内各个月份的收费总额,不区分区域,而是按月份分组。通过to_char函数将日期格式化为月份,然后进行GROUP BY操作。 7. 收费年报表(分月份统计,详细列): 这个查询更进一步,提供了每个月份的...

    oracle数据库面试程序员.pdf,这是一份不错的文件

    面试中,Oracle数据库的知识点通常涵盖SQL查询、数据类型、表操作、索引、事务处理、性能优化等多个方面。以下是对题目中涉及的一些核心知识点的详细解释: 1. **查询所有数据**:`SELECT * FROM emp`虽然简洁,但...

    Oracle函数与查询.pptx

    - **日期函数**,如MONTHS_BETWEEN、ADD_MONTHS、TRUNC等,用于日期和时间的运算,如计算两个日期之间的月数差、添加月份或按指定格式截断日期。 2. **日期与时间处理**: Oracle使用内部数值格式存储日期和时间...

    获取一年中的最小月份

    - 使用 `GROUP BY` 子句按年份对结果进行分组。这里 `substr(YEAR_MON, 1, 4)` 提取 `YEAR_MON` 字段的前四位(即年份部分)作为分组依据。 - 分组的目的是为了能够分别找出每年中符合条件的最小月份。 ### 实例...

    Oracle行转列(不定列)

    如果我们想按月份统计每个产品的销售额,可以使用`PIVOT`操作。首先,我们需要知道所有可能的月份,然后用这些月份作为新列的名称。在Oracle SQL中,这样的查询可能如下所示: ```sql SELECT * FROM sales PIVOT ( ...

    张烈-Oracle数据库讲义

    - **分组统计**:使用GROUP BY子句结合聚合函数(如COUNT, SUM等)进行分组统计。 - **连接查询**:包括INNER JOIN、LEFT JOIN、RIGHT JOIN等多种类型的连接方式。 - **子查询**:在一个查询语句中嵌套另一个查询...

    45个非常有用的 Oracle 查询语句小结

    除了上述示例,Oracle查询语句还包括但不限于聚合函数(如COUNT, SUM, AVG, MAX, MIN),连接查询(JOIN),子查询,分组(GROUP BY)和排序(ORDER BY)等。熟练掌握这些查询技巧,能够极大地提高数据处理的效率,...

    Oracle函数大全实例

    本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...

    oracle真实面试资料

    这些面试题涵盖了Oracle SQL的基本操作,包括查询、筛选、排序、分组、聚合、日期操作、子查询以及自连接等核心概念,对于理解并熟练掌握Oracle数据库的使用至关重要。在实际工作中,能够灵活运用这些技能将极大地...

    oracle 查询大全

    根据提供的文件信息,本文将详细解释Oracle数据库中与日期、字符转换及分组查询相关的常见用法和函数。Oracle作为一款强大的关系型数据库管理系统,在数据处理方面提供了丰富的功能支持。 ### Oracle日期格式 在...

    Oracle SQL语法速查

    1. **SELECT语句**:用于查询数据,可以使用WHERE子句进行条件过滤,GROUP BY进行分组,HAVING对分组结果过滤,ORDER BY进行排序,JOIN操作连接多个表。 2. **INSERT语句**:向表中插入新记录,可以使用VALUES或...

    Oracle函数速查手册

    3. 日期时间函数:Oracle提供了丰富的日期处理函数,如`SYSDATE`获取当前系统日期,`ADD_MONTHS()`增加或减少月份,`EXTRACT()`用于提取日期/时间的特定部分,`TO_CHAR()`和`TO_DATE()`用于日期/时间的格式转换。...

    oracle 表达式

    Oracle支持分区表,其中分区表达式用于定义表如何按特定列的值进行分区,提高查询性能。 9. 分区函数: 分区函数是用于计算分区键值的表达式,如MOD(column, 10)可以将数据按照每10个一组进行分区。 10. 集合...

    oracle优化篇及常用函数

    表分区是针对大数据量表的一种优化手段,它允许数据按特定规则分布,从而加快查询速度并简化管理。 架构优化则关注数据库设计,包括合理设计表结构、选择合适的数据类型、减少冗余数据等。例如,使用外键和约束来...

    oracle实现按天,周,月,季度,年查询排序方法

    例如,`trunc(t.datetime, 'mm')`会截断日期到月份级别,这在按月统计时非常有用。但需要注意的是,`trunc()`和`to_char()`在某些情况下可能产生不同的结果,具体取决于你的需求。 在实际应用中,你可能需要根据...

    oracle日常函数文档

    `SYSDATE`返回当前系统日期,`ADD_MONTHS()`可以添加或减去指定月份数,`MONTHS_BETWEEN()`计算两个日期之间的月数,`EXTRACT()`从日期/时间值中提取部分,`TO_DATE()`和`TO_CHAR()`则用于日期/时间的格式转换。...

Global site tag (gtag.js) - Google Analytics