大家好,我是新来的,我只能在SQL数据库中进行总结。
为使示例非常简单,以下是我的数据。
GAME_ID GOALIEID SCORED
2001 5 N
2001 4 N
2001 5 Y
2001 4 N
2001 5 Y
这是点球大战,我想总结一下Game_ID,GoalieID所产生的每个守门员的保存量,以及每个人实际进行了多少保存。 N =保存,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
以上已解决。
最终确定THI的问题是如何在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
基于以下简单示例: 现在我该如何查询最连续的“保存”,即“ GoalieID”为“ N”,现在我想知道我的数据有多个游戏可供浏览,但为简单起见,我在这里只有一个游戏。
我希望我的结果看起来像这样:
GAME_ID GOALIEID STREAK
2001 4 3
这将表明“ GOALIEID”#4连续进行了3次保存赢得了比赛,这表明最高的连续保存记录实际上是3次。请注意,这将涉及数千个游戏。但是我只用1个游戏就使它变得简单。
谢谢大家的帮助!
答案 0 :(得分:0)
实际上,您应该按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