Я видел много ответов для group_concat один столбец / несколько строк в несколько столбцов, но я не могу найти, как вы заполняете новые столбцы данными из второго столбца.
Моя таблица данных выглядит следующим образом :
first_name doc_number doc_status
a 1 new
a 2 new
b 3 pending
b 4 approved
c 5 new
c 6 approved
c 7 approved
Это результат, который я хотел бы получить:
first_name doc_status_new doc_status_pending doc_status_approved
a 1,2
b 3 4
c 5 6,7
Вот результат, который я получил:
first_name doc_status_new doc_status_pending doc_status_approved
a 1,2
b 3,4
c 5,6,7
Строка 2 не должна иметь ' 3,4 'в том же столбце. И в строке 3 также не должно быть «5,6,7» в одном столбце. Я не знаю, как заставить group_concat перечислить только номер doc_number, относящийся только к этому выражению «где».
Это код, который я использовал:
select
first_name,
case when doc_status = 'new' then group_concat(doc_number) end as doc_status_new,
case when doc_status = 'pending' then group_concat(doc_number) end as doc_status_pending,
case when doc_status = 'approved' then group_concat(doc_number) end as doc_status_approved
from table_name
group by first_name;