如何计算T-SQL中的GROUP BY行

JF *_*ieu 6 sql t-sql counter count

我有这个SQL查询,它执行GROUP BY将包含相同Player_id但不包含相同Game_id的所有行合并在一起:

SELECT p.Player_id, 
       p.Name, 
       p.Position, 
       SUM(s.Goals) AS goalsb, 
       SUM(s.Assists) AS assistsb, 
       SUM(s.Points) AS pointsb
FROM Dim_Player AS p 
INNER JOIN Fact_Statistics AS s ON s.Player_id = p.Player_id
GROUP BY p.Player_id, p.Name, p.Position
ORDER BY pointsb DESC, goalsb DESC
Run Code Online (Sandbox Code Playgroud)

我想要做的是每次GROUP BY将一行与另一行合并时插入一个COUNT来创建一个名为"Games playing"的新列.例:

Player_id      Game_id    goalsb
8470598        465        1
8470598        435        1
Run Code Online (Sandbox Code Playgroud)

这将与上面的SQL查询组合在一起成为:

Player_id          goalsb
8470598            2
Run Code Online (Sandbox Code Playgroud)

但我希望有这个:

Player_id          goalsb       Games_played
8470598            2            2
Run Code Online (Sandbox Code Playgroud)

Lie*_*ers 16

如果你有重复Game_id的并且你想要计算不同的值,你可以添加一个

COUNT (DISTINCT Game_id)
Run Code Online (Sandbox Code Playgroud)

你的SELECT陈述的条款.