use*_*723 2 sql sql-server sql-server-2008
这个查询返回它下面的列表,但是id会多次出现,我可以对id进行分组并将所有播放加起来,这样我就可以得到一个列表唯一的ID,旁边有播放的总数.这在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
Run Code Online (Sandbox Code Playgroud)
使用时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
Run Code Online (Sandbox Code Playgroud)
对于ORDER BY聚合函数,为数据项提供别名,并按此顺序:
SELECT [fkPlayerId], SUM([plays]) as TotalPlays
FROM [dPlaysPerDay]
INNER JOIN dWinners ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId]
GROUP BY fkPlayerId
ORDER BY TotalPlays
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |