如下表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
相关推荐
2. **按月份分组**: 类似地,可以按月份进行分组,同时保持年份信息: ```sql SELECT to_char(exportDate, 'yyyy-mm'), SUM(amount) FROM table1 GROUP BY to_char(exportDate, 'yyyy-mm') ORDER BY to_char...
Oracle数据库使用分组函数来对数据进行聚集
- **查询所有员工每个月的工资总和和平均工资**:这需要按照月份对数据进行分组,并计算每个月的工资总和和平均工资。 - **查询工资最高和最低的金额**:这可以通过使用`MAX()`和`MIN()`函数来实现。 - **查询公司的...
4. **聚合函数与GROUP BY**:`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`等聚合函数用于对一组值进行计算,配合`GROUP BY`可以按指定列分组。例如,统计每个部门的员工数量:`SELECT departments.dept_name, COUNT...
此查询统计了一年内各个月份的收费总额,不区分区域,而是按月份分组。通过to_char函数将日期格式化为月份,然后进行GROUP BY操作。 7. 收费年报表(分月份统计,详细列): 这个查询更进一步,提供了每个月份的...
面试中,Oracle数据库的知识点通常涵盖SQL查询、数据类型、表操作、索引、事务处理、性能优化等多个方面。以下是对题目中涉及的一些核心知识点的详细解释: 1. **查询所有数据**:`SELECT * FROM emp`虽然简洁,但...
- **日期函数**,如MONTHS_BETWEEN、ADD_MONTHS、TRUNC等,用于日期和时间的运算,如计算两个日期之间的月数差、添加月份或按指定格式截断日期。 2. **日期与时间处理**: Oracle使用内部数值格式存储日期和时间...
- 使用 `GROUP BY` 子句按年份对结果进行分组。这里 `substr(YEAR_MON, 1, 4)` 提取 `YEAR_MON` 字段的前四位(即年份部分)作为分组依据。 - 分组的目的是为了能够分别找出每年中符合条件的最小月份。 ### 实例...
如果我们想按月份统计每个产品的销售额,可以使用`PIVOT`操作。首先,我们需要知道所有可能的月份,然后用这些月份作为新列的名称。在Oracle SQL中,这样的查询可能如下所示: ```sql SELECT * FROM sales PIVOT ( ...
- **分组统计**:使用GROUP BY子句结合聚合函数(如COUNT, SUM等)进行分组统计。 - **连接查询**:包括INNER JOIN、LEFT JOIN、RIGHT JOIN等多种类型的连接方式。 - **子查询**:在一个查询语句中嵌套另一个查询...
除了上述示例,Oracle查询语句还包括但不限于聚合函数(如COUNT, SUM, AVG, MAX, MIN),连接查询(JOIN),子查询,分组(GROUP BY)和排序(ORDER BY)等。熟练掌握这些查询技巧,能够极大地提高数据处理的效率,...
本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...
这些面试题涵盖了Oracle SQL的基本操作,包括查询、筛选、排序、分组、聚合、日期操作、子查询以及自连接等核心概念,对于理解并熟练掌握Oracle数据库的使用至关重要。在实际工作中,能够灵活运用这些技能将极大地...
根据提供的文件信息,本文将详细解释Oracle数据库中与日期、字符转换及分组查询相关的常见用法和函数。Oracle作为一款强大的关系型数据库管理系统,在数据处理方面提供了丰富的功能支持。 ### Oracle日期格式 在...
1. **SELECT语句**:用于查询数据,可以使用WHERE子句进行条件过滤,GROUP BY进行分组,HAVING对分组结果过滤,ORDER BY进行排序,JOIN操作连接多个表。 2. **INSERT语句**:向表中插入新记录,可以使用VALUES或...
3. 日期时间函数:Oracle提供了丰富的日期处理函数,如`SYSDATE`获取当前系统日期,`ADD_MONTHS()`增加或减少月份,`EXTRACT()`用于提取日期/时间的特定部分,`TO_CHAR()`和`TO_DATE()`用于日期/时间的格式转换。...
Oracle支持分区表,其中分区表达式用于定义表如何按特定列的值进行分区,提高查询性能。 9. 分区函数: 分区函数是用于计算分区键值的表达式,如MOD(column, 10)可以将数据按照每10个一组进行分区。 10. 集合...
表分区是针对大数据量表的一种优化手段,它允许数据按特定规则分布,从而加快查询速度并简化管理。 架构优化则关注数据库设计,包括合理设计表结构、选择合适的数据类型、减少冗余数据等。例如,使用外键和约束来...
例如,`trunc(t.datetime, 'mm')`会截断日期到月份级别,这在按月统计时非常有用。但需要注意的是,`trunc()`和`to_char()`在某些情况下可能产生不同的结果,具体取决于你的需求。 在实际应用中,你可能需要根据...
`SYSDATE`返回当前系统日期,`ADD_MONTHS()`可以添加或减去指定月份数,`MONTHS_BETWEEN()`计算两个日期之间的月数,`EXTRACT()`从日期/时间值中提取部分,`TO_DATE()`和`TO_CHAR()`则用于日期/时间的格式转换。...