Как заполнить пробел при использовании GROUP BY WITH ROLLUP в MySQL

У меня есть таблица с идентификатором, описанием, количеством. Я использовал GROUP BY WITH ROLLUP, чтобы получить промежуточный итог в результате. Вот ссылка на SQL Fiddle

В результате я хочу знать, как сделать столбец «описание» пустым для строки, созданной свертыванием

В моем реальном сценарии у меня есть и другие столбцы, но они свернуты только в одном столбце. Поэтому другие столбцы должны быть пустыми.

Мой результат должен быть таким, как показано ниже.

COALESCE(ID,'TOTAL')    DESCRIPTION                 SUM

1                       Chocolate Chip Cookies      17
2                       Oatmeal Cookies             33
3                       Snaker Cookies              49
TOTAL                                               99

person Rao    schedule 21.05.2014    source источник


Ответы (2)


Вот один из способов:

SELECT COALESCE(id,'TOTAL'),
       (case when id is null then null else description end) as description,
       sum(qty) AS SUM
FROM item
group by id WITH ROLLUP;
person Gordon Linoff    schedule 21.05.2014

ВЫБЕРИТЕ c.printable_name КАК 'Страна', count(*) КАК '#' ИЗ регистраций r ВНУТРЕННЕЕ СОЕДИНЕНИЕ страна c ON r.country = c.country_id ГРУППИРОВАТЬ ПО стране

person user6340268    schedule 16.05.2016
comment
Хотя этот код может ответить на вопрос, было бы лучше включить некоторый контекст, объясняющий, как он работает и когда его использовать. Ответы, содержащие только код, в долгосрочной перспективе бесполезны. - person Bono; 16.05.2016