mysql - Mysql通过用户ID加入表组并设置最大日期的分数结果
问题描述
我正在开发一个用于电子学习的 WordPress 网站。因此,一名学生多次参加课程并多次获得分数。现在我需要得到一个带有分数和最后一条记录的 id。我尝试了很多示例,但能够得到结果。我在下面给出了我的代码。
SELECT m.id
, m.email
, t.id_tracking
, t.user_id
, FROM_UNIXTIME(t.date)
, t.score
, t.groupe_id
FROM tracking t
join membres m
WHERE t.id_tracking IN (
SELECT MAX(date)
FROM tracking
GROUP BY user_id
)
我用过关于查询我不知道我做错了什么
user_id email score date
1 test@testmail.com 78 15-06-2019
1 test@testmail.com 89 12-08-2019
2 sam@testmail.com 66 24-03-2018
2 sam@testmail.com 44 19-07-2019
3 siv@testmail.com 98 09-02-2019
3 siv@testmail.com 78 13-08-2020
我需要得到下面的结果
user_id email score date
1 test@testmail.com 89 12-08-2019
2 sam@testmail.com 44 19-07-2019
3 siva@testmail.com 98 09-08-2020
解决方案
您可以通过将日期转换为 UNIX TIMESTAMP来GROUP BY
发送电子邮件/用户 ID 并从每个组中选择最大值,如下所示date
SELECT user_id, email, score, FROM_UNIXTIME(MAX(UNIX_TIMESTAMP(date)))
FROM tableName
GROUP BY user_id
推荐阅读
- r - 从具有嵌套组的 NetCDF4 文件中读取属性值
- python - 销毁窗口后不执行 Tkinter 代码
- mongoose - 使用 Mongoose 方法的 Promise
- apache-kafka - 将多行文本作为一条消息推送到 kafka 主题中
- apache2 - Apache2 未运行
- django - 从 Django REST Swagger 中排除端点 HTTP 方法
- amazon-web-services - 无法在 AWS Fargate 容器内解压缩
- python - 如何在 Pandas groupby 对象中过滤 1 个值并使用它来计算新列?
- python - 重复一系列以在 python 中创建 df
- testing - 实习生:在每个功能测试之后执行 HelperFunction