一些孩子 ,特别是新入门程序员,给你一个需求,比如查出所有发布记录中所有发布版本最新操作的集合
孩子如果这么写,就犯错了
select
version,time
from
table
group by version
order by time desc
正确的写法是
select * from
(select
version,time
from
table
order by time desc) t
group by version
order by time desc
需要注意的是,网上一些文章,抄来抄去,都没在外层group by后面再加一个order by
你如果不加,其实是升序,那结果还是不对。
还有,有的同学想到max函数,max函数可以,看你怎么用,下面这种就不对,给你两张图片,比对下,就知道了


想要用正确的max必须使用
group by having time = max(time) where ....
自己脑补
本文介绍了如何正确地使用SQL查询语句来获取所有发布记录中每个版本的最新操作集合,并对比了错误与正确的写法,强调了在GROUP BY后使用ORDER BY的重要性。
1655

被折叠的 条评论
为什么被折叠?



