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"是用水量列的名称。