mysql查询本周内每天统计量按天展示的示例代码
作者:良田7 发布时间:2024-01-22 07:05:01
标签:mysql,统计,按天
本周
SELECT
b.item,IFNULL(a.COUNT,0) AS VALUE
FROM (
SELECT DATE(subdate(curdate(),date_format(curdate(),'%w')-1)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 1 day)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 2 day)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 3 day)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 4 day)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 5 day)) as item
union all
SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 6 day)) as item
) b
LEFT JOIN
(
SELECT DATE_FORMAT(create_time,'%Y-%m-%d') days, COUNT(*) COUNT
FROM (SELECT * FROM `table` WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(create_time)) as c
GROUP BY days
) AS a
ON (b.item = a.days)
前七天
SELECT
b.item,IFNULL(a.COUNT,0) AS VALUE
FROM (
SELECT CURDATE() AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS item
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS item
) b
LEFT JOIN
(
SELECT DATE_FORMAT(create_time,'%Y-%m-%d') days, COUNT(*) COUNT
FROM (SELECT * FROM `table` WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(create_time)) as c
GROUP BY days
) AS a
ON (b.item = a.days)
本月
SELECT
`type`,
max( `count` ) AS `count`
FROM
(
SELECT
count(*) AS `count`,
DATE_FORMAT( create_time, '%Y-%m-%d' ) AS `type`
FROM
`table` a
WHERE
DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE(), '%Y%m' )
GROUP BY
`type` UNION ALL
SELECT
0 AS `copunt`,
@cdate := date_add( @cdate, INTERVAL - 1 DAY ) `type`
FROM
( SELECT @cdate := date_add( last_day( curdate()), INTERVAL + 1 DAY ) FROM `table` ) t1
WHERE
@cdate > (
date_add( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ))
) _tmpAllTable
GROUP BY
`type`
本年按月展示
SELECT
CONCAT(
YEAR ( click_date ),
'-',
MONTH ( click_date )) AS `type`,
IFNULL( b.con, 0 ) AS `count`
FROM
(
SELECT
STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 1 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 2 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 3 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 4 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 5 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 6 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 7 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 8 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 9 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 10 MONTH ) AS click_date UNION ALL
SELECT
DATE_ADD( STR_TO_DATE( CONCAT( YEAR ( CURDATE()), '-', 1, '-', 1 ), '%Y-%m-%d' ), INTERVAL 11 MONTH ) AS click_date
) a
LEFT JOIN ( SELECT COUNT(*) AS con, CONCAT( YEAR ( REPORTDATE ), '-', MONTH ( REPORTDATE )) AS mon FROM `ls172_workorder` GROUP BY mon ) b ON CONCAT(
YEAR ( click_date ),
'-',
MONTH ( click_date ))= b.mon
来源:https://blog.csdn.net/m0_52786528/article/details/124339848


猜你喜欢
- 这篇文章主要介绍了深入了解如何基于Python读写Kafka,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- (1)选择最有效率的表名顺序(只在基于规则的优化器中有效):Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写
- sql="select * from admin where users='"&users&&q
- scipy.optimize.curve_fit解读相比numpy库的多项式拟合函数polyfit,scipy.optimize模块中的函数
- 1、mysql的limit关键字 (DAO)select * from tablename limit startPoint, number
- 由于工作需要在一大堆日志里面提取相应的一些固定字符,如果单纯靠手工取提取,数据量大,劳心劳力,于是自然而然想到了用Python做一个对应的提
- 本文实例分析了Go语言中关闭带缓冲区的频道。分享给大家供大家参考。具体分析如下:Go语言提供了两种频道,带缓冲区和不带缓冲区的。不带缓冲区的
- 首先一起来复习一下死锁的概念:死锁是指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。下面我们通过几
- 前言在使用vue.js开发前端项目时,再结合webpack搞起各种依赖、各种插件进行开发,无疑给前端开发带来了很多便捷,就在解决跨域这个问题
- 正解使用useRouter:// router的 path: "/user/:uid"<template>
- 1. 什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表
- 需要建立2个文件,一个作为客户端,一个作为服务端文件一 作为客户端client,文件二作为服务端serverudp的特点是不需要建立连接文件
- MySQL编译参数多而复杂,让新手感到很头大,如果是正式生成环境安装MySQL,没有充足的时间去研究每一个参数代表的意义,个人建议使用余洪春
- 语言原生的map存在2个问题:1)不是线程安全的;2)数据量大时候需要尽量避免使用string等,GC压力很大;有人使用泛型实现了相关的co
- Deferred对象结构Deferred由一系列成对的回调链组成,每一对都包含一个用于处理成功的回调(callbacks)和一个用于处理错误
- pycharm创建新文件自动添加文件头注释背景我们平时在使用pycharm发现有些大神创建一个新文件的时候会自动在文件头添加一些注释,像是有
- 在开发Windows应用程序时,我们经常需要进行测试来确保程序的质量和稳定性。手动测试是一种常见的方法,但是它非常耗时和繁琐,特别是对于大型
- JetBrains针对学生推出了免费使用资格,但是很多同学却不知道或者说不知道怎样获得免费资格,只能千辛万苦的去寻找破解密钥,但现在JetB
- 本文实例讲述了JS获取网页图片name属性的方法。分享给大家供大家参考。具体如下:下面的JS代码可以用来获取网页图片的name属性<!
- 业务背景业务需求要求开发一个异步上传文件的接口,并支持上传进度的查询。需求分析ZIP压缩包中,包含一个csv文件和一个图片文件夹,要求:解析