选择多个最大值?在Sqlite?

1 sqlite

对SQLite来说是超级新手,但我认为这不会有问题.

我有类似下表(不允许发布图片)从多个表中提取数据来计算TotalScore:

Name       TotalScore
Course1       15
Course1       12
Course2        9
Course2       10
Run Code Online (Sandbox Code Playgroud)

我该如何选择每门课程的最大值?我已经成功使用了

ORDER BY TotalScore LIMIT 2
Run Code Online (Sandbox Code Playgroud)

但我最终可能会在我的最终产品中使用多个课程,因此LIMIT 2等对我没有帮助.

思考?如果它有帮助,很高兴提出我的其余查询?

Pha*_*aoh 5

您可以GROUP通过结果集Name然后使用聚合函数MAX():

SELECT Name, max(TotalScore)
FROM my_table
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)

每个不同的课程将获得一行,第1列中的名称和第2列中该课程的最大总分数.

进一步提示

您只能SELECT使用(Name)分组或包含在聚合函数(max(TotalScore))中的列.如果Description结果集中需要另一列(例如),则可以按多个列进行分组:

...
GROUP BY Name, Description
Run Code Online (Sandbox Code Playgroud)

要进一步过滤生成的行,您需要使用HAVING而不是WHERE:

SELECT Name, max(TotalScore)
FROM my_table
-- WHERE clause would be here
GROUP BY Name
HAVING max(TotalScore) > 5
Run Code Online (Sandbox Code Playgroud)

WHERE过滤原始表行,HAVING过滤生成的分组行.