Фильтровать повторяющиеся строки из результата, исключая один столбец? - PullRequest
0 голосов
/ 27 июня 2011

У меня есть такая таблица -

uid  test1  test2  test3  test4  test5
10    x1     x2     x3     x4     x5
11    x6     x7     x8     x9     x10
12    x11    x12    x13    x14    x15
13    x16    x17    x18    x19    x20
14    x16    x17    x18    x19    x20
15    x21    x22    x23    x24    x25
16    x26    x27    x28    x29    x30

Как видно из приведенного выше, строки таблицы с uid 13 и 14 имеют одинаковые значения для всех столбцов, кроме uid.

Итак, я хочу отфильтровать все строки с одинаковыми значениями, за исключением идентификатора столбца (т. Е. Идентификатор столбца может откладывать в значениях), В конечном результате я хочу строки для дубликатов или аналогичных строк и в это столбец uid всех дубликатов uid в формате, разделенном запятыми.

Ожидаемые результаты -

uid    test1  test2  test3  test4  test5
10      x1     x2     x3     x4     x5
11      x6     x7     x8     x9     x10
12      x11    x12    x13    x14    x15
13,14   x16    x17    x18    x19    x20
15      x21    x22    x23    x24    x25
16      x26    x27    x28    x29    x30

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

Любые предложения приветствуются.

РЕДАКТИРОВАТЬ: Я использую MYSQL в качестве базы данных.

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

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

SELECT
  GROUP_CONCAT(uid),
  test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5
0 голосов
/ 27 июня 2011

Вы можете использовать группирование по CONCAT (КОЛИЧЕСТВА ДЛЯ ПРОВЕРКИ ДУБЛИКАТНЫХ ЗНАЧЕНИЙ).

Или попробуйте использовать запрос, приведенный здесь: http://oscarvalles.wordpress.com/2008/01/28/sql-distinct-on-one-column-only/

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

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