Mysql 当前月每天累计统计,Mysql 本月第一天
==============================
©Copyright 蕃薯耀 2022-11-10
蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主
一、Mysql 本月第一天,Mysql 当前月第一天
-- 本月第一天
SELECT DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY);-- 本月第一天
SELECT CONCAT(DATE_FORMAT(CURDATE(), '%Y-%m'), '-01');
二、Mysql 当前月每天累计统计
示例效果(ProductMeteAddUp为每天累计的数量):
Name CreateTime ProductMete ProductMeteAddUp
------------ ---------- -------------- ------------------
重钢二线 2022-11-07 0.00000000 0.00000000
重钢二线 2022-11-08 13887.50000000 13887.50000000
重钢二线 2022-11-09 5212.90000000 19100.40000000
1、方式一:mysql8.0及以上版本可用
#当月每天累计统计(mysql8.0及以上版本可用)
#方式一:
#优点:标准,使用系统函数,无重复过滤条件
#缺点:mysql8.0及以上版本可用
SELECT `Name`,DATE(CreateTime) CreateTime,ProductMete,
SUM(ProductMete) OVER(ORDER BY CreateTime) AS ProductMeteAddUp
FROM Product_Daily
WHERE 1=1
AND NAME ='重钢二线'
AND CreateTime > DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY)
ORDER BY CreateTime ASC;
2、方式二:子查询 [各版本通用]
#当月每天累计统计(子查询[各版本通用])
#方式二:
#优点:容易理解
#缺点:子查询存在重复的过滤条件
SELECT `Name`,DATE(CreateTime) CreateTime,ProductMete,
(SELECT SUM(p2.ProductMete) FROM Product_Daily p2 WHERE 1=1 AND p2.Name ='重钢二线'AND p2.CreateTime > DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY)AND DATE(p2.CreateTime) <= DATE(p1.CreateTime)) AS ProductMeteAddUp
FROM Product_Daily p1
WHERE 1=1
AND p1.Name ='重钢二线'
AND p1.CreateTime > DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY)
ORDER BY CreateTime ASC;
方式三:自定义变量实现
#当月每天累计统计(通过自定义变量实现)
#方式三:
#优点:代码简单,无重复过滤条件
#缺点:临时变量,不容易理解
SELECT `Name`,DATE(CreateTime) CreateTime,ProductMete,
@ProductMeteAddUp := @ProductMeteAddUp + ProductMete AS ProductMeteAddUp
FROM Product_Daily,(SELECT @ProductMeteAddUp := 0) temp
WHERE 1=1
AND `Name` ='重钢二线'
AND CreateTime > DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY)
ORDER BY CreateTime ASC;
三、Mysql统计每月1号到当前日期的累计数据,自动补充无数据的日期
#当月每天累计统计(通过自定义变量实现),自动补充无数据的日期
SELECT tt.*
,IFNULL(l.ProductMete, 0) ProductMete
,IFNULL(l.ProductMeteAddUp, 0) ProductMeteAddUp
FROM (SELECT@date := DATE_ADD(@date, INTERVAL + 1 DAY) `Date`FROM(SELECT @date := DATE_ADD(CURDATE(), INTERVAL - DAY(CURDATE()) DAY)FROM sys_date) TIMEWHERE @date < CURDATE()
) tt
LEFT JOIN (SELECT DATE(CreateTime) CreateTime,ROUND(ProductMete / 1000, 1) AS ProductMete,ROUND(@ProductMeteAddUp := @ProductMeteAddUp + ProductMete / 1000, 1) AS ProductMeteAddUpFROM Product_Daily,(SELECT @ProductMeteAddUp := 0) tempWHERE 1=1AND `Name` ='重钢二线'AND CreateTime > DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY)ORDER BY CreateTime ASC
) l ON l.CreateTime = tt.date
ORDER BY tt.Date
;
示例结果:
Date ProductMete ProductMeteAddUp
---------- ----------- ------------------
2022-11-01 0.0 0.0
2022-11-02 0.0 0.0
2022-11-03 0.0 0.0
2022-11-04 0.0 0.0
2022-11-05 0.0 0.0
2022-11-06 0.0 0.0
2022-11-07 0.0 0.0
2022-11-08 13.9 13.9
2022-11-09 5.2 19.1
2022-11-10 0.0 19.1
==============================
©Copyright 蕃薯耀 2022-11-10
蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主
Mysql 当前月每天累计统计,Mysql 本月第一天相关推荐
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql数据库 表大小_统计mysql数据库、表大小_MySQL
1. 查看该数据库实例下所有库大小,得到的结果是以MB为单位 mysql> select table_schema,sum(data_length)/1024/1024 as data_leng ...
- 统计MySQL中某数据库硬盘占用量大小
放码过来 select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncat ...
- easy connect 获取服务端配置信息失败_如何统计 Mysql 服务器状态信息?
最近在看<高性能的 Mysql>一书,下面是关于如何学习统计 Mysql 服务器状态的学习总结,主要是学习使用 SHOW STATUS,SHOW ENGINE INNODB STATUS, ...
- mysql中实现分类统计查询的步骤_在MySQL中如何进行分组统计查询
昨天和大家分享了MySQL中,如何进行聚合函数及统计函数查询,若是不清楚的话,可以去看一下我的那个文章.今天继续和大家分享,在MySQL中如何进行分组统计查询,这个在实际应用中,也会经常运用到,比如以 ...
- MySQL的跨年周统计问题(%X-%V)
MySQL的跨年周统计问题 最近在做项目的时候,发现了一个报表在进行周统计并且跨年的时候会出现问题,具体问题截图如下:(主要与%X-%V的时间格式符有关) 2016-12-18 ~~ 2017-01- ...
- 统计MYSQL数据库有多少张表和汇总表数据量
统计MySQL中指定数据库中有多少张表 SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_ ...
- mysql 本月第一天_mysql日期 获取本月第一天 获取下个月的第一天
select curdate(); --获取当前日期 select last_day(curdate()); --获取当月最后一天. select DATE_ADD(curdate(),interva ...
- MySQL各种优化基于《高性能MySQL第三版》
[TOC] MySQL各种优化 查询优化 查询优化器模块 查询优化器的任务是发现执行 SQL 查询的最佳方案.大多数查询优化器,要么基于规则.要么基于成本. 大多数查询优化器,包含 MySQL 的查询 ...
- mysql优化零基础_MySQL8数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
MySQL8数据库安装 一.Windows 环境下安装 Select Operating System: Microsoft Windows B.解压并配置MySQL环境变量 MYSQL_HOME: ...
最新文章
- 三巨头共聚AAA:ICapsule没有错,LeCun看好自监督,Bengio谈注意力
- numpy的array合并-【老鱼学numpy】
- 人工智能到底威胁人类还是造福人类?
- 360手机卫士界面布局学习过程续(一)
- linux 重定向 不换行,Ada:重定向到stdout时省略换行符(测试Put)
- [转]让iframe自适应高度-真正解决
- html 增加和删除一行,关于JS点击增加一行,点击删除一行的问题?
- [ CodeForces 1063 B ] Labyrinth
- Direct3d基础一__CPP基础之碰到无法打开源文件D3DX11.h如何解决
- HTML5七夕情人节表白网页制作【我喜欢你H5】HTML+CSS+JavaScript
- Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】
- 老调重谈:C语言中的指针和数组
- CSS常用的选择器学习
- pandas基础用法详解
- Tapestry入门
- 小学课外拓展计算机活动计划,小学科学课外活动计划及总结
- 【论文笔记_自蒸馏_2020】Regularizing Class-wise Predictions via Self-knowledge Distillation
- 对马尔可夫链(Markov Chain, MC)的学习
- 聊聊如何才能学好编程
- Red Hat Enterprise Linux 8.8 正式版
热门文章
- set工具集的基础使用
- linux javascript开发工具,JavaScript 基础工具清单
- 大数据能破案 从数据库侦查出新证据
- mysql中+desc用法_mysql desc(DESCRIBE)命令实例讲解
- 攻防世界easyphp解题wp
- Python制作Windows系统服务
- vt-d 基本操作流程
- cewl工具(URL字典生成器)
- idea添加目录时,Mark Directory as的几个选项详解
- 寻找http://localhost/phpmyadmin出现的问题:HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用