假设用户表名为users,用户id字段为id,用户得分字段为score,得分时间字段为score_time,可以使用以下SQL语句实现:
SELECT id, SUM(score) AS total_score
FROM users
WHERE score_time >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
GROUP BY id
ORDER BY total_score DESC;
解释一下以上SQL语句的具体含义:
- 从users表中选择id和score字段,并将score字段总和命名为total_score。
- 限制查询的时间范围为一个月内。DATE_SUB函数用于减去一个时间间隔,NOW函数返回当前时间。
- 按照id分组,对每个用户的得分求和。
- 按照总得分降序排序。
注意,以上SQL语句仅供参考,具体实现还需根据实际情况进行调整。