[ SQL ] 查询昨天数据以及查询前一个月的数据 借助:DATE_SUB()函数; 借助SQL的GROUP BY子句和聚合函数SUM()来实现 分组汇总数据

本文提供了SQL查询示例,包括如何查询特定日期范围内的数据,如最近一个月的数据和昨天的数据,以及如何根据用户分组并汇总特定列的数值。查询中涉及的关键概念有DATE_SUB函数、INTERVAL间隔、LIMIT限制和GROUPBY分组以及SUM聚合函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查询从昨天(包含昨天)往前推一个月的数据

# 举例:查询数据表record内近一个月内出现的数据中都包含哪些编码
select DISTINCT 
    metercode 
from
    record
where 
    curtime >= DATE_SUB(DATE_SUB(CURRENT_DATE, INTERVAL 0 DAY), INTERVAL 1 MONTH) 
AND 
    curtime <= DATE_SUB(CURRENT_DATE, INTERVAL 0 DAY)

# 需求:今天为6月15日,查询5月10日至6月9日之间的数据(包含5月10日,包含6月9日)
select DISTINCT 
    metercode 
from 
    record
where 
    curtime >= DATE_SUB(DATE_SUB(CURRENT_DATE, INTERVAL 5 DAY), INTERVAL 1 MONTH) 
AND 
    curtime <= DATE_SUB(CURRENT_DATE, INTERVAL 5 DAY)
# 说明:今天为15日,要求查9日往前推1个月,所以 INTERVAL 后值为 5,相当于减5天
# 根据自己的需求将 表名, 时间字段做替换即可

2.查询昨天的数据

# 查询昨天的数据,根据字段属性取前5条
select 
    *
from 
    recordday 
where 
    DATE(createtime) = DATE_SUB(CURRENT_DATE, INTERVAL 0 DAY) 
ORDER BY 
    quantity DESC 
LIMIT 5
# 需求:今天6月15日,查询6月11日的数据,排序后取前5条
select 
    usercode, username, useraddress, metercode,quantity,createtime, area1, area2
from 
    recordday 
where 
    DATE(createtime) = DATE_SUB(CURRENT_DATE, INTERVAL 4 DAY) 
ORDER BY 
    quantity DESC 
LIMIT 5
# 说明:查询11日的数据,和今天差4天,所以往前推4天,INTERVAL 后值为4

注意:DATE_SUB(CURDATE(), INTERVAL 4 DAY) 和 时间字段 createtime 比较时未查询到数据,此时需要对 createtime 字段做一下处理。

使用 DATE() 做如下所示处理:

DATE(createtime) = DATE_SUB(CURRENT_DATE, INTERVAL 0 DAY) 

3.查询到多条数据,根据用户分组,汇总每组数据中某一列的数值

# 要按用户ID分组统计用户的用水量,可以使用SQL的GROUP BY子句和聚合函数SUM()来实现。
# 假设表格包含两列:用户ID(user_id)和用水量(water_used),以下是一个示例查询:
SELECT 
    user_id, SUM(water_used) AS total_water_used
FROM 
    record
GROUP BY user_id

在这个查询中,"record"是可替换表格名称,"user_id"是用户ID列的名称,"water_used"是用水量列的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值