gpt4 book ai didi

mysql - 通过合并信息删除 MySQL 中的重复行

转载 作者:行者123 更新时间:2023-11-29 18:22:15 25 4
gpt4 key购买 nike

我有一张大 table ,上面有人员信息。每条记录都有一个 ID,并被其他表引用。我注意到很多记录都有重复的键,但它们在其他字段中的信息量有所不同。我想将各个字段中的信息合并为一个,并使“主”记录和对其他记录的所有引用都需要替换为主记录。

一个例子

| id | key1 | key2 | name | city | dob      |
|--- | ---- | ---- | ---- | ---- | -------- |
| 1 | 1 | 2 | John | | |
| 2 | 1 | 2 | | Town | |
| 3 | 1 | 2 | John | | 70/09/12 |

我需要最终得到一 strip 有值的记录(id 是 1、2 或 3)key1 = 1,key2 = 2,姓名 = John,城市 = 城镇,出生日期 = 70/09/12。

是否有一种巧妙的方法来合并这些记录,而无需测试每个字段(我的实际表有很多字段)?

最佳答案

您可以使用MAX()来获取每个键的非空值。

SELECT key1, key2, MAX(id) AS id, MAX(name) AS name, MAX(city) AS city, MAX(dob) AS dob
FROM yourTable
GROUP BY key1, key2

如果行之间可以有不同的值,并且您不想包含它们,则可以添加:

HAVING COUNT(DISTINCT NULLIF(name, ''), NULLIF(city, ''), NULLIF(dob, '')) = 1

关于mysql - 通过合并信息删除 MySQL 中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46474190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com