我有张这样的桌子-
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我尝试使用迪辛特罗,但它要求所有列都是相同的,以便考虑行是重复的。
如有任何建议请见谅。
编辑:我正在使用MYSQL作为数据库。
发布于 2011-06-27 14:41:57
使用“按列分组”,将GROUP_CONCAT()应用于要显示为一个或多个列表的一列或多列。
SELECT
GROUP_CONCAT(uid),
test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5发布于 2011-06-27 11:17:24
您可以使用group by CONCAT (列测试重复值)。
或者尝试使用以下提供的查询:http://oscarvalles.wordpress.com/2008/01/28/sql-distinct-on-one-column-only/
然后使用GROUP_CONCAT将与特定列重复的列合并(除了在您的情况下的第一列之外)。
https://stackoverflow.com/questions/6491969
复制相似问题