2017-12-03 332 views
0

总结和组我有一个表ABC其中可以存在对一种用户ID一个或多个行。 abc表具有列。我想要的结果是UserId的总和。SQL查询按id

例如:用户id 1 - > 41,用户id 2 - > 98

我现在拥有的一切:

SELECT (UserPersonalDetailsId), 
     SUM(anyValue) AS anyValueName 
    FROM [dbo].Experience 
    GROUP BY UserPersonalDetailsId 

结果:它单独返回每一行的总和。所以,我有这样的:

用户ID 1 - > 25,用户ID 1 - > 10,用户ID 2 - > 5等

我应该怎么更改或添加完成查询?

PS。我知道这是一个非常普通的解决方案,但似乎找不到任何解决方案。 。:(

+2

观看视频。解决练习参考 - [这里](https://www.khanacademy.org/computer-programming/sql-grouping-select-results-with-group-by/5520132919132160) – imGs

回答

4

你应该按UserId列不UserPersonalDetailsId

试试这个:

SELECT UserId, SUM(anyValue) AS anyValueName 
    FROM [dbo].Experience 
    GROUP BY UserId 
+0

他他他,那是一个打字错误。但是我发现了这个问题,除了userId之外我还有其他一些列组,删除了其他列修复了这个问题。虽然谢谢! – nightElf91

+0

我应该删除这个问题吗?这不会帮助任何人。 – nightElf91

+0

是的,我认为是这样的 – CodeFuller

1

你可以一试分区像这样

SELECT DISTINCT UserId, SUM(anyValue) OVER (PARTITION BY UserId) AS anyValueName 
FROM [dbo].Experience