2013-12-04 6 views
4

Я пытаюсь суммировать значение строк, два из которых имеют одинаковые значения в таблице У меня есть ниже:Sum повторяющихся строк значения

имени таблицы (Клиенты)

value years total 
1   30 30 
3   10 10 
4   15 15 
4   25 25 

Я бы идеально хотелось бы наконец:

value years total 
1  30  30 
3  10  10 
4  40  40 

Я попытался с помощью SELECT DISTINCT и GROUP BY, чтобы избавиться от дублирования ряда, также присоединиться в коде ниже, не является необходимым. Несмотря на то, что обе команды безрезультатно. Вот мой код тоже:

SELECT DISTINCT 
    value, 
    years, 
    SUM(customer.years) AS total 
FROM customer 
INNER JOIN language 
    ON customer.expert=language.l_id 
GROUP BY 
    expert, 
    years; 

Но это создает копию первой таблицы, любой вход приветствуется. Благодаря!!!

+0

Почему значение SELECT, SUM (лет), SUM (всего) ОТ клиентов GROUP BY value' не работает? – user1781290

ответ

16
SELECT 
    value, 
    SUM(years) AS years, 
    SUM(total) AS total 
FROM customers 
GROUP BY value; 

Вы хотите сумму лет, а сумма общего, за — , сгруппированные по — значение.

+0

И для тех, кто хочет группировать по нескольким столбцам: http://stackoverflow.com/questions/2421388/using-group-by-on-multiple-columns – Nav

+0

Я знаю, что это старый, но это сработало для меня .. UP u go –

+0

Работает как CHARM !! – Omer

0
SELECT 
    value, 
    years, 
    SUM(customer.years) AS total FROM (SELECT DISTINCT 
    value, 
    years, 
    customer.years AS total 
FROM customer 
INNER JOIN language 
    ON customer.expert=language.l_id) as TABLECUS 
GROUP BY 
    expert, 
    years; 
Смежные вопросы