MYSQL 窗体汇总函数

news2024/11/20 13:32:09

        如果我们想要汇总当天数据,当月数据,当年数据的。如果不懂窗体函数,可能会比较费劲,那小编就说了,我用java处理同样可以达到效果啊。可问题是。明明有现成的函数,为啥要用java处理,当然同时,java会不停的判断时间范围,严重影响性能。

        当我们掌握了一下函数使用时,

①,提高工作效率

②,防止过多bug

③,提升项目性能

④, 适用于各种大屏汇总等场景

首先我们来看一下场景

表中数据每小时会有一条数据,time是每小时一次数据vachar(2)类型,

一、如果我想汇总当天的数据呢?

SELECT
	SUM( visitors ) 
FROM
	your_table 
WHERE
	website_id = '8a87d34b8a2c0216018a2c043a220003' 
	AND DATE( create_time ) = CURDATE();

二、如果我想汇总当月的数据呢?

SELECT
	time,
	vistros,
	SUM( vistros) OVER ( ORDER BY time ) AS total_vistros 
FROM
	(
	SELECT
		DATE_FORMAT( time, '%Y-%m-%d' ) AS time,
		sum( visitors ) vistros
	FROM
		your_table 
	WHERE
		website_id = '8a87d34b8a2c0216018a2c043a220003' 
		AND DATE_FORMAT( time, '%Y%m' )= DATE_FORMAT( CURDATE(), '%Y%m' ) 
	GROUP BY
		DATE_FORMAT( time, '%Y-%m-%d' ) 
	) t1 
ORDER BY
	time ASC

三、如果是当年呢?


SELECT MONTH AS month,
	vistros,
	SUM( vistros ) OVER ( ORDER BY MONTH ) AS total_vistros 
FROM
	(
	SELECT
		DATE_FORMAT( time, '%Y-%m' ) AS MONTH,
		SUM( visitors ) AS vistros 
	FROM
		your_table
	WHERE
		website_id = '8a87d34b8a2c0216018a2c043a220003' 
	AND YEAR ( time )= YEAR (now()) 
	GROUP BY MONTH 
	ORDER BY MONTH DESC 
	) t1 
ORDER BY
	MONTH ASC;

四、日期与时间查询语句:查询当年、查询本年、查询当月、查询本周

select sum(1) as years,
(select sum(1) from `表名` where  date_format( 时间字段名, '%y%m' ) = date_format( curdate( ) , '%y%m')) as months,
(select sum(1) from `表名` where to_days(时间字段名) = to_days(now()))as days
from `表名` where year(regtime)=year(now())
 
#当天  
select * from 表名 where to_days(时间字段名) = to_days(now());
 
#昨天  
select * from 表名 where to_days( now( ) ) – to_days( 时间字段名) <= 1
 
#一周
select * from 表名 where date_sub(curdate(), interval 7 day) <= date(时间字段名)
 
#近30天 select * from 表名 where date_sub(curdate(), interval 30 day) <= date(时间字段名)
 
#本月
select * from 表名 where date_format( 时间字段名, ‘%y%m’ ) = date_format( curdate( ) , ‘%y%m’ )
 
#上一月
select * from 表名 where period_diff( date_format( now( ) , ‘%y%m’ ) , date_format( 时间字段名, ‘%y%m’ ) ) =1
 
#查询本周记录
select * from ht_invoice_information where weekofyear(create_date)=weekofyear(now());
#查询上周记录
select * from ht_invoice_information where create_date>=date_add(now(),interval -(8 + weekday(now())) day) and create_date<=date_add(now(),interval -(1 + weekday(now())) day);
 
--//或者
select * from `ht_invoice_information` where weekofyear(create_date)=weekofyear(date_sub(now(),interval 1 week));
#查询本月数据
select * from ht_invoice_information where month(create_date)=month(now()) and year(create_date)=year(now());
#查询上月数据
select * from ht_invoice_information where create_date<=last_day(date_add(now(),interval -1 month)) and create_date>=date_format(concat(extract(year_month from date_add(now(),interval -1 month)),’01′),’%y-%m-%d’);
 
--//或者
select * from `ht_invoice_information` where month(create_date)=month(date_sub(now(),interval 1 month))
and year(create_date)=year(now());
 
#查询本季度数据
select * from `ht_invoice_information` where quarter(create_date)=quarter(now());
 
#查询上季度数据
select * from `ht_invoice_information` where quarter(create_date)=quarter(date_sub(now(),interval 1 quarter));
 
#查询本年数据
select * from `ht_invoice_information` where year(create_date)=year(now());
 
#查询上年数据
select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));

参考资料:

MySQL中按月统计并逐月累加统计值的几种写法-51CTO.COM

mysql日期与时间查询语句:查询当年、查询本年、查询当月、查询本周_mysql 判断日期是某月份-CSDN博客 https://www.cnblogs.com/littlebob/p/12916389.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【zlm】 webrtc源码讲解

目录 前端WEB 服务器收到请求 服务端的处理 播放 拉流 参考文章 前端WEB 服务器收到请求 POST /index/api/webrtc?applive&streamtest&typeplay HTTP/1.1 HttpSession::onRecvHeaderHttpSession::Handle_Req_POSTHttpSession::Handle_Req_POSTif (totalConte…

iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机?

iPhone苹果手机15机型区域版本识别代码 CH代码为国行 LL代码为美版 ZP代码为港版 iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机&#xff1f; 1、打开苹果iPhone15手机桌面上的「设置」&#xff1b; 2、在iPhone苹果15手机设置内找到「通用」并点击打开&…

MySQL修改时间添加时间自动更新

第一种: database.php设置 false改为true;然后看是使用的什么框架 如果是tp5需要数据库是create_time和update_time字段 laravel的话,需要的是created_at和updated_at字段 如果想自定义的话,就在model文件里加上 protected $createTime create_at;// 默认的字段为create_t…

腾讯mini项目-【指标监控服务重构】2023-08-01

今日已办 合并 Traefik 和 Profile 的 Trace 对 Traceparent Header 理解有误 Trace Context (w3.org) 故需要解析 TraceHeader 才能获取trace_id、parent_id func (profileCtx *ProfileContext) UnpackKafkaMessage(ctx context.Context) (needBreak bool, tpsStatus strin…

浅谈C++|模板篇

一.模板模板概念 模板就是建立通用的模具&#xff0c;大大提高复用性 模板的特点&#xff1a; 1.模板不可以直接使用&#xff0c;它只是一个框架 2.模板的通用并不是万能的 C另一种编程思想称为泛型编程&#xff0c;主要利用的技术就是模板。 C提供两种模板机制:函数模板和类模…

机器学习(14)---逻辑回归(含手写公式、推导过程和手写例题)

逻辑回归 一、逻辑回归概述二、模型、策略和优化&#xff08;手写&#xff09;三、w和b的梯度下降公式推导四、例题分析4.1 题目4.2 解答 一、逻辑回归概述 1. 逻辑回归也称作logistic回归分析&#xff0c;是一种广义的线性回归分析模型&#xff0c;属于机器学习中的监督学习。…

《Web安全基础》07. 反序列化漏洞

web 1&#xff1a;基本概念1.1&#xff1a;序列化&反序列化1.2&#xff1a;反序列化漏洞1.3&#xff1a;POP 链 2&#xff1a;PHP 反序列化2.1&#xff1a;序列化&反序列化2.2&#xff1a;魔术方法 3&#xff1a;JAVA 反序列化3.1&#xff1a;序列化&反序列化3.2&a…

vue移动端页面适配

页面的适配&#xff0c;就是一个页面能在PC端正常访问&#xff0c;同时也可以在移动端正正常访问。 现在我们可以通过弹性布局【Flexible布局】、媒体查询和响应式布局。除此之外&#xff0c;还可以通过rem和vw针对性地解决页面适配问题。 响应式布局 响应式布局的核心&…

【C++】day6学习成果

#include <iostream>using namespace std;template<typename T> class MyVector { private:T *p; //动态数组的首地址 用来保存数据int Size; //动态数组的元素个数int max1size; //动态数组的最大长度 public://无参数 - 构造一个空的ve…

react路由01——react-routerV6 中路由传递参数的几种方式

react路由01——react-routerV6 中路由传递参数的几种方式 1. 前言1.1 关于react- router&#xff0c;上官网1.2 react脚手架demo 2. 路由简单配置——无参数3. 路由传参方式3.1 params参数3.1.1 params参数——useParams钩子3.1.2 params参数——useMatch钩子 3.2 search参数3…

FFmpeg深入学习

文章目录 前言一、FFmpeg 基础指令二、FFmpeg 应用之视频播放器1、音视频播放流程2、音视频同步 三、FFplay 播放器1、FFmpeg 播放器的整体框架2、ffplay 的初体验及快捷键3、ffplay 模块划分4、ffplay 原理及流程 四、FFmpeg 编解码及转码1、FFmpeg 转码全流程简介2、FFmpeg 转…

某网站小说CSS反爬实战分析

由于是刚开始编写js逆向类型的文章&#xff0c;难免会有不详细之处&#xff0c;敬请谅解 本次的目标是hongshu网的小说接口&#xff0c;我们进入官网随意找到一篇小说后&#xff0c;打开网络请求&#xff0c;分析接口 如图&#xff0c;可以看到有个bookajax.do 的接口让人值得…

Postman使用_断言测试

断言测试可以在Collection、Folder和Request的 pre-request script 和 test script中编写&#xff0c;测试脚本可以检测请求响应的各个方面&#xff0c;包括正文、状态代码、头、cookie、响应时间等&#xff0c;只有测试符合自定义的要求后才能通过。 pm对象提供了测试相关功能…

STM32 CAN使用记录:bxCAN基础通讯

文章目录 目的关键配置与代码轮询方式中断方式收发测试 示例链接总结 目的 CAN是非常常用的一种数据总线&#xff0c;被广泛用在各种车辆系统中。这篇文章将对STM32中CAN的使用做个示例。 CAN的一些基础介绍可以参考下面文章&#xff1a; 《CAN基础概念》https://blog.csdn.n…

uniapp运行到IOS真机提示 错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配

参考文章&#xff1a;请查看是否设备未加入到证书列表或者确认证书类型是否匹配 ios开发描述文件必须绑定调试设备&#xff0c;只有授权的设备才可以直接安装基座&#xff0c;所以在申请开发描述文件之前&#xff0c;先添加调试的IOS设备。 前往网站https://developer.apple.…

帧结构的串行数据接收器——Verilog实现

用Verilog 实现一个帧结构的串行数据接收器&#xff1b; 串行数据输入为&#xff1a;NRZ数据加位时钟&#xff08;BCL&#xff09;格式&#xff0c;高位在前 帧结构为&#xff1a;8位构成一个字&#xff0c;64字构成一个帧。每帧的第一个字为同步字。同步字图案存储在可由CPU读…

【自动驾驶决策规划】POMDP之Introduction

文章目录 前言Markov PropertyMarkov ChainHidden Markov ModelMarkov Decision ProcessPartially Observable Markov Decision ProcessBackground on Solving POMDPsPOMDP Value Iteration Example 推荐阅读与参考 前言 本文是我学习POMDP相关的笔记&#xff0c;由于个人能力…

阿里云CDN缓存配置及优化-oss绑定CDN缓存自动刷新功能

参考阿里云官网文档&#xff1a;https://help.aliyun.com/practice_detail/603170 1.缓存时间配置 在缓存管理中&#xff0c;可以方便地指定目录和文件后缀名在CDN节点上的缓存时间&#xff0c;缓存时长配置的长短&#xff0c;取决于源站对该文件的变更频率。我们需要分析下业务…

前后端分离毕设项目之springboot同城上门喂遛宠物系统(内含文档+源码+教程)

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

项目:UDP聊天室

UDP UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接、不可靠、面向数据报的传输协议。与TCP相比&#xff0c;UDP更加轻量级&#xff0c;不提供像TCP那样的可靠性和流控制机制&#xff0c;但具备较低的通信延迟和较少的开销。 UDP具有以下几个特点&#xff1…