У меня проблема с дубликатами, использующими сервер mysql с функцией stuff. База данных содержит несколько миллионов записей, и использование различных не подлежит сомнению (кажется, что запрос даже не обрабатывается).
Это моя структура базы данных:
PersonID Freetext Importance
PersonID Freetext Importance
PersonID Freetext Importance
PersonID Freetext Importance
PersonID Freetext Importance
Я использовал следующую структуру для этого запроса. Запрос работает нормально (относительно функции stuff), но возвращает дубликаты. Например, если пять идентификаторов одинаковы, запрос возвращает пять строк:
SELECT PersonID, Importance, Freetext = STUFF(
(SELECT '~' + Freetext
FROM TABLE t1
WHERE t1.PersonID = t2.PersonID
FOR XML PATH (''))
, 1, 1, '') from TABLE t2
group By PersonID, Importance
order by Importance
Как этого избежать?
Я бы хотел, чтобы все свободные тексты, принадлежащие одному и тому же PersonID, были объединены в одну строку, упорядочив их так, чтобы строка, имеющая наименьшее значение, имела бы вначале свой свободный текст.