我搜索了很多,但找不到答案或附近的东西。
我有一个这样的表:
id int(11) NO PRI auto_increment
attribute_id int(11) YES
user_id int(11) YES
result int(11) YES
x10 int(11) YES
我需要每个 attribute_id
大约 5 个结果。
attribute_id
可以是任意数字,因此首先,我需要检查 attribute_id
,接下来我必须检查每个 attribute_id 的结果。
除了 MySQL 之外,我不知道如何在没有任何编程语言的情况下做到这一点,但我知道你可以。
示例:
attribute_id result
1 200
1 149
1 123
2 322
2 321
2 300
3 ...
3 ...
等等。
最佳答案
SELECT attribute_id, result
FROM TableName a
WHERE
(
SELECT COUNT(*)
FROM TableName b
WHERE a.attribute_id = b.attribute_id
AND a.result <= b.result
) <= 5
关于MySQL 查找每组的最高结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16277000/