msyql 分组排序问题 传统写法 group by 和 order by获取不到想要的数据,数据混乱
2024-01-02 21:08:09
? ? ? ? ? 发生场景:用户表被删除,根据用户日志操作最后一条数据修复用户表
? ? ? ?第一次用sql?
SELECT
*
FROM
(
SELECT
UserID,
Score,
MAX(ID) AS MaxLoginDate
FROM
user_inout_log_202312
GROUP BY
UserID
ORDER BY
ID DESC
) t
ORDER BY
Score DESC;
结果:
根据数据验证这个结果是错误的,不是我们想要的数据
第二条sql
SELECT UserID,Score,Diamond,Lottery from (
SELECT
user_inout_log_202312.*
FROM
user_inout_log_202312
INNER JOIN (
SELECT
UserID,
MAX(ID) AS MaxLoginDate
FROM
user_inout_log_202312
GROUP BY
UserID
) AS latest ON user_inout_log_202312.UserID = latest.UserID
AND user_inout_log_202312.ID = latest.MaxLoginDate ORDER BY Score desc
) t ;
子查询获取最新的用户id,要user_inout_log_202312 的全部数据 用inner join 获取重复的数据
经过验证第二条sql 使我们想要的结果
文章来源:https://blog.csdn.net/weixin_39645311/article/details/135344686
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!