mysql 按日、周、月、年统计sql语句整理,实现报表统计可视化

原创 2016年08月29日 17:14:36

最近在做报表统计,前端可视化插件用的是Echarts,个人认为是目前免费插件里的翘楚http://echarts.baidu.com/demo.html#pie-doughnut例子演示

现在重点如何把后台数据源搞定,我采用的是mybatis,所以重点是怎么把sql语句写好。

– –按日

SELECT COUNT(*),DATE(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime)='2016' GROUP BY DAY(CreateTime)

这里写图片描述

– –按周

 SELECT COUNT(*),WEEK(CreateTime) FROM t_voipchannelrecord WHERE MONTH(CreateTime) = '8' GROUP BY WEEK(CreateTime) 

–周一到周五每天的统计结果

 SELECT COUNT(*),DAYNAME(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY DAYNAME(CreateTime) 

这里写图片描述

–统计本周数据

SELECT COUNT(*) FROM t_voipchannelrecord WHERE MONTH(CreateTime) =
MONTH(CURDATE()) AND WEEK(CreateTime) = WEEK(CURDATE())

–按月统计

SELECT COUNT(*),MONTH(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY MONTH(CreateTime) 

这里写图片描述

–统计本月数据

SELECT COUNT(*) FROM t_voipchannelrecord WHERE MONTH(CreateTime) =
MONTH(CURDATE()) AND YEAR(CreateTime) = YEAR(CURDATE())

–按季统计

SELECT COUNT(*),QUARTER(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY QUARTER(CreateTime) 

–按年统计


SELECT COUNT(*),YEAR(CreateTime) FROM t_voipchannelrecord  GROUP BY YEAR(CreateTime) 

–时间段(该段参考:出处)

N天内记录
WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N
当天的记录
where date(时间字段)=date(now())
 或
where to_days(时间字段) = to_days(now());

 查询一周:
select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

 查询一个月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);



查询'06-03''07-08'这个时间段内所有过生日的会员:
   Select * From user Where
DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')
<= '07-08';

统计一季度数据,表时间字段为:savetime 
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))
 或
select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*) 
from yourTable
group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;

==未完待续

版权声明:本文为博主原创文章,未经暴烈骑士允许或未声明者不得转载。

mysql做报表必知

做了一周的报表,略有心得,分享一下(mysql数据库,easyui做报表格式): 1.sql语言是博大精深的,如果你在mysql有很深的造诣,那么你将会发现工作轻松了一半,有证如下: 这种...
  • qq_25601949
  • qq_25601949
  • 2015年12月04日 16:31
  • 1571

怎么在Navicat for MySQL 中进行报表设计

Navicat for MySQL 是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了...
  • forererer
  • forererer
  • 2016年06月14日 13:33
  • 3148

MySQL 使用GROUP_CONCAT实现统计报表

要写一个sql,统计某写游戏玩家级别最高的角色名,首先看一个某个玩家的所有角色 tudou@gyyx select a.account,a.`name`,a.`LEVEL` from mdb.c...
  • ylqmf
  • ylqmf
  • 2012年03月09日 20:43
  • 12989

iReport中交叉报表列头的排序

近来做报表的时候,有个交叉报表让列头按照指定顺序排序,自己纠结了好久也没找出解决办法,于是乎,本人就开始在网上“大肆”搜索……,还好还好,虽然没找到完整的解决办法,但是通过“前人”们总结的点点滴滴,还...
  • liuxiyangyang
  • liuxiyangyang
  • 2012年12月25日 09:26
  • 4374

第八章 BIRT交叉报表

8.1 创建交叉报表和统计 一、创建报表和配置数据源 新建一个报表,改好自己的名字,然后next进行下一步。 选择一个空白报表(Blank Report),单击finish完成。 ...
  • huazaichang
  • huazaichang
  • 2013年01月25日 22:14
  • 1542

表设计优化(MySQL作为报表数据库)

表设计优化(MySQL作为报表数据库) 目前虽然有较多的大数据处理框架,但也有其局限性,其功能往往无法和传统DB媲美。使用传统DB,可以利用简单的SQL语句获得结果,利用包括索引和表关联等成熟技术获...
  • xxgwo
  • xxgwo
  • 2017年03月16日 12:16
  • 825

Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(八)-Mysql数据源

实现Mysql数据库连接报表模板输出 前几章介绍了以实体类作为报表数据源进行输出的案例,这一章讲解现在常用的报表数据源,那就是数据库,以MySQL数据库作为数据库工具。 下载安装Mysql...
  • lky5387
  • lky5387
  • 2017年05月24日 02:56
  • 392

php+mysql 生成统计报表

项目中有这样一个需求,把页面分成一个一个的板块,然后统计各个板块在30天内的点击数,生成一个报表,如下图: mysql获取数据的代码: //结束时间 年月日 $endTime = date(...
  • wlm131127
  • wlm131127
  • 2013年04月09日 17:15
  • 4576

mysql数据自动生成报表软件

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL是开放源代码的,因此任何人都可以在General Pu...
  • jihong10102006
  • jihong10102006
  • 2017年12月18日 16:34
  • 95

mysql 按年度、季度、月度、周、日SQL统计查询

来自: http://blog.chinaunix.net/uid-11600035-id-2866132.html 一、年度查询 查询 本年度的数据 SELECT * FROM b...
  • Leolu007
  • Leolu007
  • 2015年11月24日 17:03
  • 10415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql 按日、周、月、年统计sql语句整理,实现报表统计可视化
举报原因:
原因补充:

(最多只允许输入30个字)