Уменьшить и объединить дубликаты строк - PullRequest
0 голосов
/ 20 июля 2010

У меня есть таблица со следующими выборочными данными:

Name    Color

Alice   Green
Bob     Black
Chris   Green
Chris   Black     
David   Red
Peter   Blue
Simon   Blue
Simon   Red
Simon   Green

В конечном итоге я хочу уменьшить таблицу путем объединения столбца Цвет, например:

Name    Color

Alice   Green
Bob     Black
Chris   Green, Black
David   Red
Peter   Blue
Simon   Blue, Red, Green

такое, что Имя может стать уникальным.

В таблице нет PRIMARY KEY, я дошел до создания нового столбца с помощью ROW_NUMBER для различения дубликатов, но не знаю, что делать дальше.

rownumber    Name    Color

1            Alice   Green
1            Bob     Black
1            Chris   Green
2            Chris   Black     
1            David   Red
1            Peter   Blue
1            Simon   Blue
2            Simon   Red
3            Simon   Green

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Не делай этого. Вместо этого нормализуйте свои таблицы, например, далее. таблица Person, Preference и Color (где предпочтение, если это правильное имя для отношения, имеет внешние ключи для Person и Color). Таким образом, вы избежите риска несоответствий (вы можете сделать имена людей уникальными, если хотите, но вы должны сделать имена цветов уникальными).

РЕДАКТИРОВАНИЕ: если вы получаете это из запроса на соединение, я буду считать, что данные достаточно последовательны, поэтому нормализация не является проблемой. Можно ли вместо этого изменить запрос на объединение на GROUP в имени? На самом деле намного чище, чем взламывать набор результатов!

0 голосов
/ 22 июля 2010

Я принял подход здесь

с табличной переменной для хранения временного набора результатов для работы (взломать).

Рассортировано!

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