У меня есть таблица, как это в MySQL:MySQL: Выбор каждого члена в качестве столбца в группе заявлением
PersonID id X
1 1 0
1 2 1
1 3 1
1 4 1
2 1 1
2 2 0
2 3 0
2 4 1
3 1 1
3 2 0
Etc. X является бинарным - либо 1 или 0. Просто предположит, что это случайное.
Я хочу, чтобы получить результат запроса, как это:
PersonID X1 X2 X3 X4
1 0 1 1 1
2 1 0 0 1
3 1 0 NULL NULL
Как это сделать? Я попробовал следующее:
select
PersonID,
case when id = 1 then X else NULL end as X1,
case when id = 2 then X else NULL end as X2,
et cetera
from table
group by PersonID
который, очевидно, не так, и будет длиться вечно, чтобы писать (так как у меня до 700 различных идентификаторов для каждого человека), но это лучшее, что я могу думать.
Таким образом, у вас может быть 700 различных идентификаторов '1,2,3 ... 700'? –
Да. И 700 разных столбцов. Непротиворечивый, но необходимый, к сожалению, – japem
, в этом случае вам нужно будет использовать динамический sql для создания сводной таблицы. Проверьте динамический pivot mysql и убедитесь, что номера столбцов не пересекаются 4096 –