首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从结果中筛选重复行(不包括一列)?

从结果中筛选重复行(不包括一列)?
EN

Stack Overflow用户
提问于 2011-06-27 11:13:13
回答 2查看 2.2K关注 0票数 0

我有张这样的桌子-

代码语言:javascript
运行
复制
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。

预期结果-

代码语言:javascript
运行
复制
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作为数据库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-27 14:41:57

使用“按列分组”,将GROUP_CONCAT()应用于要显示为一个或多个列表的一列或多列。

代码语言:javascript
运行
复制
SELECT
  GROUP_CONCAT(uid),
  test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5
票数 2
EN

Stack Overflow用户

发布于 2011-06-27 11:17:24

您可以使用group by CONCAT (列测试重复值)。

或者尝试使用以下提供的查询:http://oscarvalles.wordpress.com/2008/01/28/sql-distinct-on-one-column-only/

然后使用GROUP_CONCAT将与特定列重复的列合并(除了在您的情况下的第一列之外)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6491969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档