Отфильтровать повторяющиеся строки из результата, исключая один столбец?

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

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 все дубликаты 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, но для этого требуется, чтобы все столбцы были одинаковыми. чтобы считать строку дублирующейся.

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

EDIT: я использую MYSQL в качестве базы данных.


person Alpesh    schedule 27.06.2011    source источник


Ответы (2)


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

SELECT
  GROUP_CONCAT(uid),
  test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5
person Andriy M    schedule 27.06.2011

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

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

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

person DhruvPathak    schedule 27.06.2011