大家好,我是新来的,我一直在我的 SQL 数据库中进行总结。
为了使示例非常简单,下面是我的数据。
GAME_ID GOALIEID SCORED
2001 5 N
2001 4 N
2001 5 Y
2001 4 N
2001 5 Y
这是一场枪战,我想通过 Game_ID、GoalieID 总结每个守门员的扑救次数,以及每个守门员实际扑救的次数。 N=保存 AND Y=放弃目标
我正在尝试按降序输出我的结果,如下所示:
GAME_ID GOALIEID SAVES
2001 4 2
2001 5 1
目前基于我的代码:
SELECT GAME_ID, GOALIEID, COUNT(SCORED) AS SAVES
FROM GIRAFFE.MLS
WHERE SCORED = 'N'
GROUP BY GAME_ID
ORDER BY COUNT (SCORED) DESC
但我得到的结果只是将所有扑救加起来并将其归因于一名守门员,如下所示。
GAME_ID GOALIEID SAVES
2001 5 3
以上问题已解决。
要完成的最后一个问题是如何在 SQL 中查询 STREAK
例如:
GAME_ID GOALIEID TEAMID TEAMSHOTNUM OVERALLSHOT SCORED
2001 5 1 1 1 Y
2001 4 2 1 2 N
2001 5 1 2 3 N
2001 4 2 2 4 N
2001 5 1 3 5 N
2001 4 2 3 6 N
基于这个简单的例子: 我如何查询最连续的“Saves”,这将是“GoalieID”的“N”现在假设我的数据有多个游戏要查看,但为简单起见,我这里只有一个游戏。
我希望我的结果看起来像这样:
GAME_ID GOALIEID STREAK
2001 4 3
这将表明“GOALIEID”#4 连续 3 次扑救赢得了比赛,这表明最高的连续扑救次数实际上是 3 次。请记住,这将跨越数千场比赛。但我在这里只用了一款游戏就让它变得简单了。
感谢大家的帮助!
最佳答案
实际上你应该按 GAME_ID 和 GOALIEID 分组:
SELECT GAME_ID, GOALIEID, COUNT(SCORED) AS SAVES
FROM a
WHERE SCORED = 'N'
GROUP BY GAME_ID, GOALIEID
ORDER BY SAVES DESC
关于mysql - 在 SQL 中汇总数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52764593/