Результаты группировки серверов SQL - PullRequest
2 голосов
/ 24 ноября 2011

этот запрос возвращает список под ним, однако идентификаторы встречаются несколько раз, могу ли я сгруппировать идентификаторы и сложить все воспроизведения, чтобы я просто получил список уникальных идентификаторов с общим количеством воспроизведений рядом с ним. это возможно в sql?

SELECT [fkPlayerId],[plays]
FROM [dPlaysPerDay]
INNER JOIN dWinners
ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId]

53693   1
53695   1
53696   1
53693   1
53692   2
53698   2
53697   1
53699   2
53698   3
53693   6
53699   2
53693   2
53700   2
53698   1

1 Ответ

6 голосов
/ 24 ноября 2011

При использовании GROUP BY все элементы данных в SELECT должны быть либо включены в GROUP BY, либо помещены в совокупную функцию .

Следовательно, fkPlayerId следует сгруппировать, а plays использовать с функцией SUM()

SELECT [fkPlayerId], SUM([plays])
FROM [dPlaysPerDay]
INNER JOIN dWinners ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId]
GROUP BY fkPlayerId

К ORDER BY агрегатной функции, присвоить элементу данных псевдоним и упорядочить следующим образом:

SELECT [fkPlayerId], SUM([plays]) as TotalPlays
FROM [dPlaysPerDay]
INNER JOIN dWinners ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId]
GROUP BY fkPlayerId
ORDER BY TotalPlays
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...