【发布时间】:2020-06-30 18:54:24
【问题描述】:
我设计了一个板球锦标赛数据库,其中收集了所有实时数据并尝试执行以下查询。
我正在尝试执行一个查询,该查询将显示与官方网站上的实际统计数据完全相同的结果,如图所示。
我想要实现的目标 - 我希望查询显示在整个锦标赛中一局中得分最多的得分,如图所示。请看https://stats.espncricinfo.com/ci/engine/records/batting/most_runs_innings.html?id=13202;type=tournament
问题 - 有一些球员在比赛中得分最多的球员不止一次,但是,由于我的查询,它只会显示该球员一次。例如,M Labuschagne 和 D Warner 不止一次出现。这是因为我正在使用 GROUP BY 玩家的姓名,但我不确定如何修改查询以使姓名显示不止一次。请看附图。
使用的代码:
SELECT p.name, innings, MAX(runs) AS max_runs
FROM testruns
JOIN players AS p
ON testruns.player_id = p.id
WHERE runs IS NOT NULL
GROUP BY p.name, innings
ORDER BY max_runs DESC
LIMIT 50
创建的表格:比赛、裁判、检票口、球员、角色、场地、团队、试运行
我对 SQL 很陌生。
【问题讨论】:
-
请阅读this,了解一些改进问题的技巧。
标签: sql postgresql join group-by