MYSQL PHP 按指定ID统计近7天多列字段值之和的实现问题
SQL 实现方案
核心逻辑
- 日期筛选使用数据库内置日期函数计算7天前的时间节点,过滤出符合时间要求的数据
- 按照第一、第二个ID字段联合分组,即可对同ID下的所有数值列做聚合求和
- 若需查询单个指定ID的结果,只需在WHERE条件中补充对应ID的过滤规则即可
通用SQL示例(以MySQL为例,表名、字段名可根据实际情况替换)
SELECT -- 两个ID字段,对应数据的第一、第二个字段 id_1, id_2, -- 多个数值列求和就依次写在SUM内相加即可,示例为单个数值列value的求和 SUM(value) AS total_value FROM your_table_name WHERE -- 筛选最近7天的数据 record_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) -- 如需查询ID=344的结果,取消下方注释并替换为实际ID值即可 -- AND id_1 = 344 -- AND id_2 = [第二个字段的对应ID值] GROUP BY id_1, id_2;
其他数据库的日期函数适配
- PostgreSQL:将
DATE_SUB(CURDATE(), INTERVAL 7 DAY)替换为CURRENT_DATE - INTERVAL '7 days' - SQL Server:替换为
DATEADD(day, -7, GETDATE()) - Oracle:替换为
SYSDATE - 7
内容的提问来源于stack exchange,提问作者ondravirag
相关产品推荐
相关产品推荐

