【发布时间】:2021-07-03 09:53:33
【问题描述】:
我有一个表,其中包含重复的姓名和电子邮件,但具有不同的标识符和其他相关数据。在这种情况下,标识符不必必须是唯一的。以下是数据示例:
| course | user_code | First Name | Last Name | Email Address |
|---|---|---|---|---|
| econ | SKNKZ62HR28 | John | Doe | john.doe@gmail.com |
| lang | C6NV4LQS5D4 | John | Doe | john.doe@gmail.com |
| science | H9NNVNWVPM9 | Fred | Doe | fred.doe@gmail.com |
| govt | JVNH2BVTD3V | Jane | Doe | jane.doe@gmail.com |
| math | L2NK8S49N5G | Jane | Doe | jane.doe@gmail.com |
我需要做的是更新 user_code 以便 John Doe 对两门课程都有相同的 user_code:
| course | user_code | First Name | Last Name | Email Address |
|---|---|---|---|---|
| econ | SKNKZ62HR28 | John | Doe | john.doe@gmail.com |
| lang | SKNKZ62HR28 | John | Doe | john.doe@gmail.com |
| science | H9NNVNWVPM9 | Fred | Doe | fred.doe@gmail.com |
| govt | L2NK8S49N5G | Jane | Doe | jane.doe@gmail.com |
| math | L2NK8S49N5G | Jane | Doe | jane.doe@gmail.com |
我已经能够使用此代码识别我的重复项:
SELECT a.*
FROM attendees a
JOIN
(SELECT [Email Address], [Last Name], [First Name], COUNT(*) AS number
FROM attendees
GROUP BY [Email Address], [Last Name], [First Name]
HAVING count(*) > 1) b ON a.[Email Address] = b.[Email Address]
AND a.[Last Name] = b.[Last Name]
AND a.[First Name] = b.[First Name]
ORDER BY a.[Email Address]
我不确定接下来的步骤。
【问题讨论】:
-
谢谢。更新标签。 SQL-服务器
标签: sql sql-server