вторая попытка ответить на этот вопрос более подробно. Я пытаюсь сгруппировать различные значения нескольких столбцов для объектов с одинаковым именем. Я могу использовать 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 |
+----------+-------+-------+-------+
И вот основной запрос c, который я должен придумать, НЕ работает должным образом:
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 |
+----------+-----------+
What Мне нужно, чтобы он возвращал группировку групп только с разными значениями:
+----------+---------+
| Company | GROUPED |
+----------+---------+
| Generic | 1,2,3 |
+----------+---------+
| Generic2 | 1,2 |
+----------+---------+
Возможно ли это?