Mariadb перемещать динамические данные из строк в столбцы с True / False

0

Я использую MariaDB 10.2.

Таблица тегов клиента выглядит так:

Изображение 174551

Я хочу создать View/Query, который дает результат, как показано ниже

Изображение 174551

Я легко мог это сделать в Excel, но SQL-запрос оказался очень сложным и ошибочным.

Я пробовал SQL

SELECT
  GROUP_CONCAT( t.tagname ) INTO @PivotQuery
FROM
  (SELECT
     clienttag.customer, tagname
   FROM
     clienttag
   GROUP BY
     clienttag.customer, clienttag.office) t;

SET @PivotQuery = CONCAT('SELECT @PivotQuery' FROM clienttag GROUP BY customer');
Теги:
pivot
mariadb
pivot-table

1 ответ

1

Использовать условную агрегацию

SELECT customer, tagname,
      MAX(CASE WHEN tagName = 'A' THEN 1 END) as A,
      MAX(CASE WHEN tagName = 'B' THEN 1 END) as B,
      MAX(CASE WHEN tagName = 'C' THEN 1 END) as C,
      MAX(CASE WHEN tagName = 'D' THEN 1 END) as D,
      MAX(CASE WHEN tagName = 'E' THEN 1 END) as E
FROM clienttag
GROUP BY customer, tagname
  • 0
    A, B, C это динамические поля. Собственно, эти значения примерно такие - green, blue, white, car, jeep, birthday
  • 0
    @AdarshMadrecha хорошо, я понимаю. Вы можете скомпилировать запрос, используя динамический SQL: stackoverflow.com/questions/12004603/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню