http://www.cnblogs.com/gaojing/archive/2008/11/07/1328657.html [oracle] to_date() 与 to_char() 日期和字符串转换
http://blog.sina.com.cn/s/blog_5fcdcbf70100er92.html SQL 按月统计
http://www.cnblogs.com/wenbhappy/archive/2008/07/02/1233660.html
SQL按照日、周、月、年统计数据
http://blog.19lou.com/10572276/viewspace-755729 SQL按日期归类统计数据
http://piaoling.iteye.com/blog/465703 oracle的rank,over partition涵数使用
http://www.programmersheaven.com/mb/oracle/344879/344879/invalid-indentifier-error-with-this-sql-statement/?S=B20000 ORA-00904: "DAY": invalid identifier
http://www.diybl.com/course/7_databases/sql/sqlServer/2008626/128408.html Oracle SQL group by day/week/month/quarter
http://blog.csdn.net/jamex/archive/2008/06/24/2582514.aspx Oracle的日期函数
http://stackoverflow.com/questions/482912/sql-group-by-year-month-week-day-hour-sql-vs-procedural-performance
经过实践
根据http://blog.19lou.com/10572276/viewspace-755729 SQL按日期归类统计数据
如:
表:consume_record
字段:consume (money类型)
date (datetime类型)
请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量.
如:1月 1200元
2月 3400元
3月 2800元
--按日
select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date])
--按周quarter
select sum(consume),datename(week,[date]) from consume_record where year([date]) = '2006' group by datename(week,[date])
--按月
select sum(consume),month([date]) from consume_record where year([date]) = '2006' group by month([date])
--按季
select sum(consume),datename(quarter,[date]) from consume_record where year([date]) = '2006' group by datename(quarter,[date])
--指定日期你就看上面的例子变通下呀,无非就是一个聚合函数和Group by
select [date],sum(consume) from consume_record where [date] between '2006-06-01' and '2006-07-10' group by [date]
以上适用与非ORALE,因为oracle不支持 day函数
oracle中进行上述操作需要
You can choose any of the following options and replace the text string in SQLs to let the reports be as daily/weekly/monthly/Quarterly reports..
--daily
to_char(rad.created_on+15/24, 'YYYY-MM-DD')
--weekly
to_char(next_day(rad.created_on+15/24 - 7,2),'YYYY-MM-DD')
to_char(时间列,'yyyy')||to_char(时间列,'IW')
--monthly
to_char(rad.created_on+15/24,'yyyy-mm')
--quarterly
to_char(rad.created_on+15/24,'yyyy-q') ||'Q'
例如我的sql:
按天----select to_char(to_date(timestamp,'yyyymmddhh24MIss'), 'YYYY-MM-dd') a,sum(num) from udbstat group by to_char(to_date(timestamp,'yyyymmddhh24MIss'), 'YYYY-MM-dd');
按周----select to_char(to_date(timestamp,'yyyymmddhh24MIss'), 'ww') a,sum(num) from udbstat group by to_char(to_date(timestamp,'yyyymmddhh24MIss'), 'ww');
因为我的timestamp是字符串,故需要先转换成date类型。
如果字段本身就是date类型,sql如下:
按小时---select to_char(timestamp, 'YYYY-MM-dd hh24') a,sum(num) from udbstat group by to_char(timestamp,'YYYY-MM-dd hh24');
按天---select to_char(timestamp, 'YYYY-MM-dd') a,sum(num) from udbstat group by to_char(timestamp,'YYYY-MM-dd');
按月---select to_char(timestamp, 'YYYY-MM') a,sum(num) from udbstat group by to_char(timestamp,'YYYY-MM');
按年---select to_char(timestamp, 'YYYY') a,sum(num) from udbstat group by to_char(timestamp,'YYYY');
按季度---select to_char(timestamp, 'YYYY-q') a,sum(num) from udbstat group by to_char(timestamp,'YYYY-q');
按周---select to_char(timestamp, 'ww') a,sum(num) from udbstat group by to_char(timestamp,'ww');
相关推荐
利用 oracle sql 实现 计算一段时间内(除去周六日)的秒数
在本示例中,我们关注的是如何利用SQL查询按时间进行分组统计数据。以下将详细介绍几种常见的分组方法及其应用。 1. **按年份分组**: 使用`to_char()`函数将日期字段转换为年份格式,并结合`GROUP BY`子句进行分组...
### SQL工作日计算,只排除周末 在数据库管理和数据分析领域,准确地计算两个日期之间的有效工作日数量是一项非常实用的功能,特别是在需要排除周末(通常指周六和周日)的情况下。这种计算方法对于财务报告、项目...
标题“Oracle 获取某日期属于一年中的第几个自然周”指的是在Oracle数据库系统中,通过SQL查询来确定一个特定日期在当年是第几周的问题。在实际业务中,这样的功能可能用于统计、报告或者数据分析,例如,公司可能...
本文将详细介绍如何利用Oracle SQL来获取当前周、月、季、年的起始日期与结束日期,并进一步讨论如何基于这些日期进行数据统计。 #### 1. 获取当前周的起始与结束日期 - **当前周周一**:`select next_day(SYSDATE...
### SQLOracle21天自学通 #### 第一天:SQL简介 - **SQL简史**:SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准语言。它最初由IBM的研究员Donald D. Chamberlin和Raymond F. ...
在描述中的第一条SQL语句,`to_char(to_date('20130906','yyyymmdd'), 'd') from dual`,这行代码的作用是确定给定日期(2013年9月6日)是周内的第几天,结果为6,表示这是本周的第六天,因为Oracle默认周日是一周的...
这些SQL语句主要用于Oracle数据库环境,并通过具体的例子进行说明。 #### 查询当前月份的数据 为了查询当前月份的数据,可以使用以下SQL语句: ```sql SELECT * FROM table t WHERE t.create_time >= TRUNC...
《三周精通SQL》是一本面向数据库开发人员和管理员的中文教程,旨在帮助读者快速掌握SQL这一关系型数据库管理语言的基础与高级应用。SQL(Structured Query Language)是数据查询、数据操纵、数据定义和数据控制的...
1. **日期函数**: Oracle提供了一系列日期函数,如`SYSDATE`获取当前系统日期,`ADD_MONTHS`增加或减少月份,`TRUNC`截断日期到指定的精度(如年、月、日等),`EXTRACT`提取日期/时间的特定部分(如小时、分钟等)...
使用这个函数,你可以方便地查询任何日期属于其前一个月的第几个自然周,这对于统计分析或业务处理非常有用。例如,你可以结合其他业务数据,找出特定日期范围内各周的销售趋势、用户活跃度等指标。 在实际应用中,...
本文将详细介绍如何利用SQL语句实现按天、周、月、季度和年进行查询和排序的功能。 首先,我们来看按天查询。在Oracle中,我们可以使用`to_char()`函数结合日期时间格式模型`'YYYY-MM-DD'`来提取日期,并以此进行...
- 计算一年中周内各日期的次数:统计一年中各周内某天的出现频率。 - 确定当前记录和下一条记录之间相差的天数:使用数据库的日期差函数。 8. 日期操作 - SYSDATE能得到的信息:解释SYSDATE函数返回的当前系统...
4. 出勤统计:提供按日、周、月的出勤报告,以及迟到、早退、缺勤等统计分析。 5. 数据备份与恢复:定期备份考勤数据,以防数据丢失,同时提供数据恢复功能。 6. 系统设置:管理员可配置系统参数,如打卡时间范围、...
- **流行的SQL开发工具**:市场上有许多优秀的SQL开发工具,如MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等。这些工具提供了丰富的功能,帮助开发者更轻松地编写和测试SQL代码。 - **...
4. 时间段分析:按小时、日、周、月统计访问量,分析访问高峰期。 5. 来源追踪:记录用户来源,如搜索引擎、直接访问、外部链接等。 五、安全性与性能优化 系统可能还考虑了安全性问题,如防止SQL注入攻击,确保...
- **Oracle 10g OEM图形化自定义对所有表、索引统计分析的自动化调度任务**: - 利用OEM的功能创建定时任务,定期对表和索引进行统计分析。 **6. 导出表、索引最新统计分析数据** - 将统计分析的结果导出为文件,...
### Oracle DBA 日常工作手册知识点详述 #### 第一章 事前阶段 ##### 一、日常工作——每天应做工作内容 **1、工作内容——日常环境监控** **1.1 系统运行环境监控** - **Oracle 文件监控**:检查Oracle数据文件...