我有下表(user_record),其中包含数百万行,如下所示:
no uid s
================
1 a 999
2 b 899
3 c 1234
4 a 1322
5 b 933
-----------------
uid 可以重复。我需要的是显示前 10 条记录(需要包括 uid 和 s),没有重复的 uid 顺序按 s(desc)。我可以通过以下 SQL 语句中的两个步骤来做到这一点:
SELECT distinct(uid) FROM user_record ORDER BY s DESC LIMIT 10
SELECT uid,s FROM user_record WHERE uid IN(Just Results)
我只是想知道在一个语句中是否有更有效的方法?
任何帮助是极大的赞赏。
ps:我也有以下SQL语句:
select * from(select uid,s from user_record order by s desc) as tb group by tb.uid order by tb.s desc limit 10
但它很慢