Группировка результатов нескольких GROUP_CONCAT() только с различными значениями

вторая попытка ответить на этот вопрос более подробно. Я пытаюсь сгруппировать различные значения нескольких столбцов вместе для объектов с тем же именем. Я могу использовать GROUP_CONCAT для каждого из столбцов «Тип», но я не могу объединить их вместе, чтобы получить отдельный набор значений для каждого имени.

Вот пример моих данных:

+———-+——-+——-+——-+ | Company | Type1 | Type2 | Type3 | +———-+——-+——-+——-+ | Generic | 1 | NULL | 3 | +———-+——-+——-+——-+ | Generic | NULL | 2 | 2 | +———-+——-+——-+——-+ | Generic | 3 | 2 | NULL | +———-+——-+——-+——-+ | Generic2 | 1 | NULL | NULL | +———-+——-+——-+——-+ | Generic2 | NULL | 2 | 2 | +———-+——-+——-+——-+ | Generic2 | 1 | 2 | NULL | +———-+——-+——-+——-+

И вот основной запрос, который я должен придумать, который НЕ работает так, как хотелось бы:

SELECT s.company, CONCAT(GROUP_CONCAT(DISTINCT s.type1),’,’,GROUP_CONCAT(DISTINCT s.type2),’,’,GROUP_CONCAT(DISTINCT s.type3)) AS GROUPED FROM sample s GROUP BY s.company

Приведенный выше запрос возвращает:

+———-+————+ | Company | GROUPED | +———-+————+ | Generic | 1,3,2,3,2 | +———-+————+ | Generic2 | 1,2,2 | +———-+————+

Мне нужно, чтобы он возвращал группу групп только с разными значениями:

+———-+———+ | Company | GROUPED | +———-+———+ | Generic | 1,2,3 | +———-+———+ | Generic2 | 1,2 | +———-+———+

Это возможно?

Источник: ledsshop.ru

Стиль жизни - Здоровье!