问一个查询数据库的问题,谢谢!

tuoji tuoji 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有这样的数据表:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 7 / 1 / 1 /
/ 10 / 5 / 2 /
/ 10 / 4 / 3 /
/ 7 / 2 / 4 /
+-----------+------------+-------------+
我的目的是查询按照attid分组,并且按照lasttime排序。我希望的查询结果应该如下:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 7 / 2 / 4 /
/ 10 / 4 / 3 /
+-----------+------------+-------------+
简单点就是这个意思:
如果有多条attid相同的记录,我只要一条。但我要得这条并不是按照表中记录的顺序的第一条,而是选择lasttime最大的一条。比如:
23 345
23 567
23 120
这样两条记录我只需要中间那条,也就是:
23 567
这条,请问这个SQL语句改如何写?
我是这样写的:
SELECT * FROM tb1 GROUP BY attid ORDER BY lasttime DESC
但查询结果不对,这样得到的查询结果是:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 10 / 5 / 2 /
/ 7 / 1 / 1 /
+-----------+------------+-------------+
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
tuoji
ASP 28,401 成员 356,940 内容