SQL получает два столбца рядом одно множественное значение одно уникальное значение - PullRequest
0 голосов
/ 02 октября 2019

Моя проблема немного проста, я попытался найти, но не нашел желаемого ответа,

У меня есть два столбца в моей базе данных, один из которых a и b считают "A" с идентификаторами, а "B" с цветамиТеперь я достигаю половины того, что хочу, это когда я пытаюсь найти столбец B, идентификаторы повторяются, например,

1 Black
1 Black
2 Blue
2 Blue
2 Blue
3 White

Теперь все, что мне нужно, это получить эти столбцы и добавить еще два столбца ктот же запрос, который затем показывает unqiue столбца "A" и его цвет, например;

A B       C
1 Black   1 Black
1 Black   2 Blue
2 Blue    3 White
2 Blue
2 Blue
3 White

Возможно ли это?

1 Ответ

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

Это странная вещь, которую нужно сделать, но вы можете использовать оконные функции:

select t.a, t.b, tg.a as c, tg.b as d
from (select a, b, row_number() over (order by a, b) as seqnum
      from t
     ) t left join
     (select a, b, row_number() over (order by a, b) as seqnum
      from t
      group by a, b
     ) tg
     on t.seqnum = tg.seqnum;

Оконные функции доступны, начиная с MySQL 8.0

...