我想选择具有最高分数的行,但由于可以有多行具有最大值,所以我希望该行具有最高值,而另一列。请考虑此列中的值不同。如何为此编写SQLite查询。这是我的想法,直到现在:
SELECT NAME, MAX(SCORE) FROM PLAYERS ORDER BY SECOND_COLUMN;
但它似乎不起作用。我怎么做?请帮忙。 感谢。
答案 0 :(得分:1)
如果我理解正确,您可以使用order by
和limit
执行您想要的操作:
select p.*
from players p
order by score desc, second_column
limit 1;
您的查询不起作用,因为MAX(SCORE)
使其成为聚合查询。但是,没有GROUP BY
,因此NAME
是语法错误。此外,由于聚合,SECOND_COLUMN
中的ORDER BY
未定义。
答案 1 :(得分:0)
SELECT NAME, MAX(SCORE) FROM PLAYERS GROUP BY NAME ORDER BY MAX(SCORE);
答案 2 :(得分:0)
您可以执行以下操作:
SELECT NAME, SCORE
FROM PLAYERS
WHERE SCORE>=(SELECT MAX(SCORE) FROM PLAYERS)
ORDER BY SECOND_COLUMN DESC
LIMIT 1
这将获得具有相同分数的所有名称,然后按第二列排序,并且仅返回最大值