通过合并相似的列来操作重复的行[重复]

Posted

技术标签:

【中文标题】通过合并相似的列来操作重复的行[重复]【英文标题】: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 时抛出错误 【参考方案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 分组;

【讨论】:

以上是关于通过合并相似的列来操作重复的行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

基于Pandas.Dataframe中的多个列合并多个重复行

在 Python 中合并数据框时出现重复的行

将两个具有相似列值的数据框合并在一起[重复]

如何合并重复的行

如何在集合视图中为不同的行实现不同的列数[重复]

Pandas - 具有重复值的列的外部连接