2014-12-17 4 views
-1

Я знаю, как это сделать в MySQL с SUM, но как добавить столбец, как это (разгруппировать группу?)разгруппируйте SUM и GROUP BY

CREATE TABLE Table1 
    (`id` int, `price` int) 
; 

INSERT INTO Table1 
    (`id`, `price`) 
VALUES 
    (1,10), 
    (1, 10), 
    (2, 20), 
    (2, 20), 
    (3, 30), 
    (3, 31) 
; 

ID будет думать, как «категории ID». Я хочу это:

ID price sum 
-------------------- 
1  10  20 <- or nothing if it's not to hard 
1  10  20 
2  20  40 
2  20  40 
3  30  61 
3  31  61 

Не так:

ID price sum 
-------------------- 
1  10  20 
2  20  40 
3  30  61 

SQL:

SELECT id, SUM(price)FROM Table1 GROUP BY id 

http://sqlfiddle.com/#!2/34fbe/1

+0

Вы хотите получить сумму для группы, а затем показать исходные записи, которые произвели эту сумму? –

+0

Итак, вы предоставили правильный и неверный результат запроса. Где находится структура таблицы, данные и где находятся запросы? – GolezTrol

+0

@ GolezTrol Зачем вам нужны запросы? Я положил sqlfiddle (несколько минут после публикации) ... –

ответ

1

Вы можете использовать подзапрос:

select t.*, tt.sumprice 
from table1 t join 
    (select id, sum(price) as sumprice 
     from table1 t 
     group by id 
    ) tt 
    on t.id = tt.id; 
+0

не работает ... http://sqlfiddle.com/#!2/34fbe/2 :( –

+1

@ benoît 'table' используется в качестве заполнителя для вашей реальной таблицы, конечно: http: //sqlfiddle.com/ #! 2/34fbe/7 – StuartLC

+0

спасибо @StuartLC –