SQL如何将类似的记录合并到同一个表中的单行?

Noa*_*men 6 mysql sql merge records

我目前正在尝试清理前员工创建的邮件订阅者数据库.我已经能够整合和修复大多数问题(主要是重复),但我有订阅者的实例有重复记录,因为他们订阅了多个区域.我想要做的是将这些重复记录合并为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
Run Code Online (Sandbox Code Playgroud)

我想将2合1记录合并,并删除所有重复项(有些重复项最多9个),如下所示:

id     first     last    address    truck    machinery    gl    ne    nw
------------------------------------------------------------------------
1      Chuck     G....   12 Lorem   1        1            1     1     1
Run Code Online (Sandbox Code Playgroud)

Pரத*_*ீப் 6

使用Group ByMax/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 
Run Code Online (Sandbox Code Playgroud)

  • 当列是文本时,您将如何处理这个问题? (2认同)