Ho questa query SQL che fa un GROUP BY per unire insieme tutte le righe che contengono lo stesso player_id ma non lo stesso Game_id:Come contare GROUP BY righe in T-SQL
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
quello che voglio fare è impiantare un COUNT ogni volta che GROUP BY unisce una riga con un'altra per creare una nuova colonna chiamata "Giochi giocati". Esempio:
Player_id Game_id goalsb
8470598 465 1
8470598 435 1
questo verranno raggruppate con la query SQL sopra per diventare:
Player_id goalsb
8470598 2
Ma voglio avere questo:
Player_id goalsb Games_played
8470598 2 2
Non sei sicuro di aver compreso la domanda, ma l'aggiunta di un 'COUNT (DISTINCT Game_Id)' alla tua istruzione SELECT risolve il problema? –
Ha funzionato. Stavo facendo COUNT (*) –
Farò una risposta fuori di esso :) –