我需要将结果限制为 3 行(示例),但如果第 3 个结果等于第 4 个,则也打印第 4 个,依此类推。解释:从此表
id punteggio
1 100
2 200
3 70
4 100
5 54
6 201
7 200
如果我做
SELECT * FROM table ORDER BY punteggio DESC LIMIT 3
我需要在每种情况下打印以下情况:
id punteggio
6 201
2 200
7 200
1 100
4 100
因为我的“三个”最佳点实际上是 7 个中的 5 个,原因 2 和 7 具有相同的点,例如 1 和 4...
我事先不知道最低和最高点,否则我会这样做
"WHERE punteggio >= 100"
非常感谢!
更新
不幸的是,我的情况发生了变化:
punteggio 从另一个表的 SUM 中诞生:
id idPersona punteggio
1 1 30
2 1 -10
3 2 50
4 3 60
5 2 -10
6 3 150
7 1 190
等等...
我试过做:
SELECT persone.nome,
SUM(transazioni.importoFinale) AS punti
FROM transazioni
INNER JOIN persone ON persone.idPersona = transazioni.idPersona
INNER JOIN
(SELECT DISTINCT(SUM(transazioni.importoFinale)) AS punti,
persone.nome
FROM transazioni
INNER JOIN persone on persone.idPersona = transazioni.idPersona
GROUP BY persone.idPersona
ORDER BY punti DESC
LIMIT 3) subq ON transazioni.punti = subq.punti
ORDER BY punti DESC
但它不起作用...
谢谢你们!