SQL объединить две строки с одинаковым идентификатором, но разными значениями столбца - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь объединить разные строки в одну, когда они имеют одинаковый идентификатор, но разные значения столбцов.

    (table1)

    id       colour

    1        red
    1        blue
    2        green
    2        red

Я бы хотел, чтобы это было объединено, чтобы получить результат:

    id     colour1    colour2

    1      red        blue
    2      green      red

Нет ограничений на количество цветов. Может варьироваться в зависимости от идентификатора.

Любая помощь будет оценена! Заранее спасибо.

1 Ответ

0 голосов
/ 22 октября 2019

Это подойдет для вашего конкретного примера

select left(colours,locate(',',colours)-1) as colour1 , right(colours, length(colours)- locate(',',colours)) as colour2 from (select id, group_concat(colour) as colours from table1 group by id) concatenation

не очень общий или устойчивый.

Если набор значений (цветов) был фиксирован, я 'я бы предпочел повернуть его так:

select id, sum(RED) as RED , sum(GREEN) as GREEN , sum(BLUE) as BLUE from (select id , colour='red' as RED , colour='green' as GREEN , colour='blue' as BLUE from table1) coded group by id;

, но это не тот формат вывода, который вы запрашивали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...