2013-07-07 4 views
0

Это нелегко объяснить, поэтому я сделаю это шаг за шагом. Ниже приведена таблица, которую я создал.Mysql суммировать строки и столбцы

id | item_1 | item_2 | item_3| 
32 | 1 | 43 | 54 | 
32 | 54 | 32 | 32 | 
67 | 42 | 45 | 12 | 

Как вы можете видеть, первые 2 ряда имеет тот же идентификатор, моя цель, получить сумму первой строки, которая равна (1 + 43 + 54), а сумма второго ряда, который (54 + 32 + 32), затем добавьте обе строки с одинаковыми идентификаторами и отсортируйте их с самого высокого на самый низкий. Может кто-то помочь мне с этим?

+0

сумма первого ряда, которая (1 + 42 + 54)? он должен быть (1 + 43 + 54), правильно? – sarwar026

+0

О! не видел этого, моя вина! – user2310422

ответ

5

Я думаю, что вы ищете

select 
     id, 
     sum(item_1+item_2+item_3) as item_sum 
from yourtable 
group by id 
order by item_sum desc; 
+0

Это решило мою проблему, спасибо! Я отвечу правильно в 7 мин. – user2310422

4

Я хотел бы сделать это следующим образом:

SELECT 
    ID, 
    SUM(Total) as TotalSum 
FROM 
    (
     SELECT ID, ITEM_1 + ITEM_2 + ITEM_3 as Total 
     FROM 
      MyTable 
    ) 
GROUP BY ID 
ORDER BY TotalSum DESC 
+0

Вы должны добавить 'order by SUM (Total) desc' clause. правильно? – sarwar026

+0

@ sarwar026, право, я пропустил это! Спасибо за исправление. – Vikdor

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