MYSQL 窗体汇总函数

这篇具有很好参考价值的文章主要介绍了MYSQL 窗体汇总函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

①,提高工作效率

②,防止过多bug

③,提升项目性能

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

首先我们来看一下场景

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

MYSQL 窗体汇总函数,mysql,数据库,窗体函数

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

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

MYSQL 窗体汇总函数,mysql,数据库,窗体函数

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

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

MYSQL 窗体汇总函数,mysql,数据库,窗体函数

三、如果是当年呢?


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;

MYSQL 窗体汇总函数,mysql,数据库,窗体函数

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

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文章来源地址https://www.toymoban.com/news/detail-732153.html

到了这里,关于MYSQL 窗体汇总函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库增删改查及聚合查询SQL语句学习汇总

    目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table   查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查(CRUD)详细说明 增加 SQL库提供了关于时间的函数:now()  查询 查询表作列与列之间进

    2024年02月09日
    浏览(86)
  • MySQL8.0数据库开窗函数

          数据库开窗函数是一种在SQL中使用的函数,它可以用来对结果集中的数据进行分组和排序,以便更好地分析和处理数据。开窗函数与聚合函数不同,它不会将多行数据聚合成一行,而是保留每一行数据,并对其进行分组和排序。 常见的开窗函数包括ROW_NUMBER()、RANK()、

    2024年02月08日
    浏览(65)
  • MySQL 数据库中 CAST 函数如何使用?

          CAST 函数是 SQL 中的一种类型转换函数,它用于将一个数据类型转换为另一个数据类型。 2.1  将字符串转换为数字类型  2.2  将数字类型转换为字符串类型 2.3  将日期时间类型转换为字符串类型 2.4  将布尔类型转换为整型 2.5 将Interger 类型转换成 FLOAT 类型

    2024年02月15日
    浏览(63)
  • MySQL数据库基础:JSON函数各类操作一文详解

    很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。往常存储json一般都保留在pg库或者是hive库里面,现在mysql有了支持的话基本业务都可以用mysql来实现。现在mysql8.x版本对json字符出处理已经做的非常完善了。现在就让我们来详细了解

    2024年02月04日
    浏览(54)
  • 【⑤MySQL函数】:让你的数据库操作更高效(二)

    前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL日期时间、条件判断、系统信息、加密、进制转换和IP地址转换函数的讲解 ✨ 一、日期和时间函数 函数 作用 CURDATE(),CURRENT_DATE() 返回当前日期 CURTIME(),CURRENT_TIME() 返回当前时间 NOW(),CURRENT_TIMESTAMP(),LOCALTIME(), SYSDAT

    2024年02月10日
    浏览(38)
  • 珍藏多年的MySQL函数大全笔记,掌握数据库真不难

    做程序员的谁会离得开数据库呢? 今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库函数你能用得好,其他的东西也就水到渠成了。 序号 函数 说明

    2023年04月23日
    浏览(55)
  • MySQL数据库查询语句之组函数,子查询语句

    以组为操作单位,一组数据得到一个结果。 在没有手动分组的前提下,整张表默认为一组数据 max(列名):获取最大值 min(列名):获取最小值 sum(列名):获取总和 avg(列名):获取平均值 count(列名):统计值的个数 所有组函数都会自动忽略null值 在某些情况下,我们需要根据需要

    2024年01月23日
    浏览(60)
  • MySQL数据库中的存储过程以及存储函数练习

     字段名       数据类型       主键    外键    非空   唯一    自增       id             INT               是      否       是       是           否    name    VARCHAR(50)   否      否       是       否           否    glass   VARCHAR(50)     否   

    2024年02月15日
    浏览(45)
  • MySQL数据库基础(三):多表查询,子查询,开窗函数

    表与表之间的关系 在SQL语句中,数据表与数据表之间,如果存在关系,一般一共有3种情况: ① 一对一关系(高级) 比如有A、B两张表,A表中的每一条数据,在B表中有一条唯一的数据与之对应。 用户表user user_id(用户编号) 账号username 密码password 001 admin admin888 002 itheima

    2024年02月12日
    浏览(45)
  • 零基础学MySQL(五)-- 详细讲解数据库中的常用函数

    提供 student 表 1️⃣count 函数 count 表示返回行的总数 (1)基本语法 (2)基本练习 统计一个班级共有多少学生? 统计数学成绩大于 90 的学生有多少个? 统计总分大于 250 的人数有多少? (3)注意细节 count(*) 和 count(列) 的区别: count(*) 返回满足条件的记录的行数 count(列

    2024年01月19日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包