mysql - 过滤结果中的重复行不包括一列?

标签 mysql sql duplicates

我有一张这样的 table -

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 ,但它要求所有列都相同才能认为行是重复的。

任何建议表示赞赏。

编辑:我使用 MYSQL 作为数据库。

最佳答案

使用您希望在输出中不同的列进行分组,应用 GROUP_CONCAT()在要显示为列表的一列或多列上。

SELECT
  GROUP_CONCAT(uid),
  test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5

关于mysql - 过滤结果中的重复行不包括一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491969/

相关文章:

python - Django sql 连接失败

sql - SQL中的异或联接

sql - 我可以在多个 DML 语句中引用 Sqlite CTE 吗?

jquery - Rails 自动完成 Jquery (crowdint) : select . uniq 不在范围内工作,避免重复

php - 如何检查mysql表中多行中的值与每行中的唯一数据关联

mysql - 是否可以更改单个数据库以在 mysql 上使用 InnoDB 而不是 myISAM

MySQL单查询,父子关系跨表存储

sql - 使用 SQL 在 Access 中对 5 个表进行内联接和左联接

vba - Excel:比较两个范围并删除重复的单元格值

php - 防止重复值进入 mysql 数据库 - 如果某些列与最后插入的行相似