【问题标题】:Manipulating duplicate rows by merging similar colmns [duplicate]通过合并相似的列来操作重复的行[重复]
【发布时间】:2017-02-13 21:53:17
【问题描述】:

我有第 1 行和第 2 行,它们在记录中相似,但状态列除外。

   +-----+------+-------+-----------+----------+---------+
| #id | NAME | STATUS|   c_lan   | Java_lan | Dot_lan |
+-----+------+-------+-----------+----------+---------+
|   1 |  A   |   111 |      yes  |    Q     | W       |
|   1 |  A   |   222 |      yes  |    Q     | W       |
|   2 |  B   |   333 |  NA       |    B     | C        |
+-----+------+-------+-----------+----------+---------+

现在是否可以将这两行 (1,2) 变成如下所示的一行(需要将状态值合并到一个单元格中)?

+-----+------+-----------+-----------+----------+---------+
| #id | NAME | STATUS    |   c_lan   | Java_lan | Dot_lan |
+-----+------+-----------+-----------+----------+---------+
|   1 | A    |   111,222 |      yes  |    Q     | W       |
|   2 | B    |   333     |  NA       |    B     | C       |
+-----+------+-----------+-----------+----------+---------+

注意到我正在考虑在 mysql 视图上完成此操作

【问题讨论】:

  • select id,name,group_concat(status) from table_name group by id
  • 除了 STATUS 列之外的行是否总是相同的?
  • @jussius ONLY_FULL_GROUP_BY" 与其他 RDBMS 一样,并在缺少 GROUP BY 时抛出错误

标签: mysql duplicates


【解决方案1】:

SELECT id,group_concat(distinct name),group_concat(distinct status),group_concat(distinct c_lan),group_concat(distinct java_lan),group_concat(distinct dot_lan) 从表 1 按 ID 分组;

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多