`
lan13217
  • 浏览: 495880 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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 bydatename(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 bydatename(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');

分享到:
评论

相关推荐

    SQL按照日、周、月、年统计数据的方法分享

    以下是一个按日统计的例子: ```sql SELECT SUM(consume), DAY([date]) FROM consume_record WHERE YEAR([date]) = '2006' GROUP BY DAY([date]); ``` 这个查询将返回每天的总销售额,`DAY([date])`用于提取日期...

    sql 语句 按照某年某月某周查询每位学生或员工的作业提交次数或打卡记录数据统计

    sql 语句 按照某年某月某周查询每位学生或员工的作业提交次数或打卡记录数据统计。 对考勤次数,提交信息考核统计很重要。

    非常完美Java实现年、月、日、周访问量统计

    在Java编程语言中,实现对年、月、日、周访问量的统计是一项常见的任务,尤其是在网站数据分析或者服务器日志处理中。这个任务涉及到日期时间处理、数据存储以及可能的数据聚合操作。以下是一些关键的知识点,可以...

    sql中的按日期统计问题

    SQL提供了多种内置函数来处理日期和时间,例如`DATE()`、`YEAR()`、`MONTH()`、`DAY()`等,用于提取日期的年、月、日部分。还有`NOW()`或`CURRENT_DATE`获取当前日期,以及`DATE_ADD()`、`DATE_SUB()`进行日期加减...

    sqlserver 计算当月所有自然周的区间。

    根据提供的文件信息,我们可以了解到这段代码的主要目的是在SQL Server中计算出指定月份的所有自然周的起始和结束日期,并将这些信息存储在一个名为`monthWeekBetween`的表中。接下来,我们将详细解释其中的关键概念...

    SQL工作日计算,只排除周末

    ### SQL工作日计算,只排除周末 在数据库管理和数据分析领域,准确地计算两个日期之间的有效工作日数量是一项非常实用的功能,特别是在需要排除周末(通常指周六和周日)的情况下。这种计算方法对于财务报告、项目...

    sql获取上一周时间段

    假设今天是2008年9月22日(星期一),则返回结果为`2`。 #### 3. 计算上一周的起始日期 为了获取上一周的起始日期,我们需要从当前日期向前推算到上一个星期天。这可以通过以下步骤完成: - 首先,确定当前日期与...

    周、月、季、年统计SQL

    本文将详细介绍如何利用Oracle SQL来获取当前周、月、季、年的起始日期与结束日期,并进一步讨论如何基于这些日期进行数据统计。 #### 1. 获取当前周的起始与结束日期 - **当前周周一**:`select next_day(SYSDATE...

    禅道统计工时sql语句+Excel工具出工时报表

    禅道上的统计报表非常匮乏,专业版的水晶报表又不划算,自己动手弄了套工时统计的方案 还挺好用的 希望对大家有所帮助 附件就是统计个人名下所有需求,任务和bug的sql语句,以及Excel统计模板 操作步骤: 建议使用...

    oracle sql计算一段时间内(除去周六日)的秒数

    利用 oracle sql 实现 计算一段时间内(除去周六日)的秒数

    SQL联合统计查询

    在统计查询中,这可以用来按特定日期范围(如一天、一周或一个月)筛选数据。 二、联合查询的语法 基本的UNION语法如下: ```sql SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; ```...

    Sql查询获取周数Sql获取从星期一开始的周数

    把星期一作为每个星期的开始在一年中求取周数: 写成sql储存过程,放在sql中就可以用,也可以简单参考思路,快速在程序中实现。因为线上查找过大部分的获取将星期一作为一周开始的周数的思路在特定日期都有一些问题...

    SQL对数据进行按月统计或对数据进行按星期统计的实例代码

    一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。  1、SQL操作如下: SELECT id ,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB...

    三周精通SQL 中文版

    《三周精通SQL》是一本面向数据库开发人员和管理员的中文教程,旨在帮助读者快速掌握SQL这一关系型数据库管理语言的基础与高级应用。SQL(Structured Query Language)是数据查询、数据操纵、数据定义和数据控制的...

    sql函數,week周數,返回日期

    这通常不是1月1日,而是1月1日之后的第一个星期一。 - 然后,通过 `dateadd()` 和 `datepart()` 函数计算出所求周的第一天。 - 示例代码:`set @dateFirstDayOfWeek = dateadd(day, 1 - datepart(weekday, @...

    基于JSP+SQL SERVER 实现的网站流量统计管理系统毕业设计(源代码+论文)

    2、统计概要及报表:网站统计概要 ,日统计报表 ,周统计报表 ,月统计报表 ,年统计报表 , 3、客户端情况统计:用户操作系统统计 ,用户浏览器统计 ,屏幕分辨率统计 ,访问者省份统计 , 访问地区统计 ,C段IP...

    每年第一天为第一周的周次算法

    至于标签中的DBA,他们可能需要对大量日期数据进行分析,例如按周统计销售量或用户活动,此时了解和应用这种周次算法就显得尤为重要。源码可能指的是实现上述算法的代码片段,可以是C#类库、ASP.NET控件或SQL存储...

Global site tag (gtag.js) - Google Analytics