SQL 如何将来自相同 table 的相似记录合并为单行?
SQL how to merge similar records into single row from same table?
我目前正在尝试清理前雇员创建的邮件订阅者数据库。我已经能够合并和修复大多数问题(主要是重复问题),但我有订阅者具有重复记录的实例,因为他们订阅了多个区域。我想做的是将那些重复的记录合并为 1。
这是我要合并的重复记录的经过编辑的实际示例:
id first last address truck machinery gl ne nw
------------------------------------------------------------------------
1 Chuck G.... 12 Lorem 1 1
2 Chuck G.... 12 Lorem 1 1
3 Chuck G.... 12 Lorem 1 1
我想将 2 条记录合并为 1 条记录,并删除所有重复项(有些重复项最多 9 条),如下所示:
id first last address truck machinery gl ne nw
------------------------------------------------------------------------
1 Chuck G.... 12 Lorem 1 1 1 1 1
使用Group By
和Max/Min
聚合
SELECT id,
first,
last,
address,
Max(truck) AS truck,
Max(machinery) AS machinery,
Max(gl) AS gl,
Max(ne) AS ne,
Max(nw) AS nw
FROM yourtable
GROUP BY id,
first,
last,
address
我目前正在尝试清理前雇员创建的邮件订阅者数据库。我已经能够合并和修复大多数问题(主要是重复问题),但我有订阅者具有重复记录的实例,因为他们订阅了多个区域。我想做的是将那些重复的记录合并为 1。
这是我要合并的重复记录的经过编辑的实际示例:
id first last address truck machinery gl ne nw
------------------------------------------------------------------------
1 Chuck G.... 12 Lorem 1 1
2 Chuck G.... 12 Lorem 1 1
3 Chuck G.... 12 Lorem 1 1
我想将 2 条记录合并为 1 条记录,并删除所有重复项(有些重复项最多 9 条),如下所示:
id first last address truck machinery gl ne nw
------------------------------------------------------------------------
1 Chuck G.... 12 Lorem 1 1 1 1 1
使用Group By
和Max/Min
聚合
SELECT id,
first,
last,
address,
Max(truck) AS truck,
Max(machinery) AS machinery,
Max(gl) AS gl,
Max(ne) AS ne,
Max(nw) AS nw
FROM yourtable
GROUP BY id,
first,
last,
address