2013-04-04 3 views
0

Я пытаюсь суммировать кучу значений, но имею таблицу с повторяющимися записями. Используя разницу и сумму с группой, закончив тем самым суммирование всех значений, а не только одного из каждого UserID.Как суммировать только одно значение из каждой повторяющейся записи

UserID | Value 
1  | 200 
1  | 200 
1  | 200 
2  | 500 
2  | 500 
2  | 500 
3  | 800 
3  | 800 
4  | 200 
4  | 200 

Я хочу выход быть похожим на это:

NumberOfUsers | Total 
4    | 1700 

ответ

6

Делайте DISTINCT первым, затем SUM:

SELECT Count(UserID) AS NumberOfUsers, SUM(Value) AS Total 
FROM 
    (SELECT DISTINCT UserID, Value 
    FROM Table 
) AS subqry 

SQLFiddle пример here.

+2

Согласитесь, что это ответ, если требуются повторяющиеся строки. Они также могут захотеть посмотреть, нужно ли иметь повторяющиеся строки. Это может быть лучшее решение для удаления всех повторяющихся строк и добавления уникального ограничения для UserID. –

Смежные вопросы