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等对我没有帮助.
思考?如果它有帮助,很高兴提出我的其余查询?
您可以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过滤生成的分组行.
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |