2012-04-10 3 views
0

Моя таблица выглядит следующим образомПодгруппы внутри группы По запросу в MySQL

 
a | b 
--|-- 
0 | 5 
1 | 6 
2 | 7 
3 | 7 
4 | 7 

Я хочу подвести над «Ъ» для групп (а = 0, а = 1, а> = 2).

вывод должен быть чем-то вроде,

 
sum | a 
----|--- 
5 | 0 
6 | 1 
21 | 2 

Что запрос я должен использовать?

+0

Подождите ... Последние две строки в исходной таблице, должны иметь 'Ā' значение 2, не так ли? –

+0

Нет Луч, это ясно говорит 'a> = 2' – Manuel

+0

Ого, слепой или что-то .... Спасибо. –

ответ

5

Это должно сделать это:

SELECT 
CASE 
WHEN a = 0 THEN '0' 
WHEN a = 1 THEN '1' 
WHEN a >= 2 THEN '2' 
END AS anotherNameThanA, 
SUM(b) AS `sum` 
FROM yourTable 
GROUP BY anotherNameThanA 
+0

Для SQL-сервера вам придется повторить оператор case в группе, иначе вы получите отдельные строки на значение 2 и выше. Разве это отличается от MySql? – kaj

+0

@ Рахул Отредактировал свой ответ. Важно, чтобы псевдоним для CASE..WHEN отличался от имени реального столбца. Протестировал его, и это было для меня неожиданностью, так как обычно MySQL справляется с этим довольно хорошо. – fancyPants

+0

@kaj Хорошо, он попросил MySQL :) По крайней мере, он отметил это так. Но вы правы, поэтому спасибо за ваш комментарий. – fancyPants

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