我有一张有45列的表格。列SrNo
有一个primary key
。它有数百万条记录。它包含很多重复项。我实际上想要找到唯一值并希望将它们插入另一个表中。列First-Middle-Last Name
,Emails
(办公室,个人),MobileNumbers
包含如此多的重复项。我试图使用下面的查询找到唯一的值,但它仍然显示重复的结果。任何人都可以帮助我在哪里误会?
SELECT ft.first_name
, ft.middle_name
, ft.last_name
, ft.designation
, ft.company_name
, ft.email_office
, ft.email_personal1
, ft.email_personal2
, ft.personal_mobile1
, ft.personal_mobile2
FROM mytable ft
JOIN
( SELECT First_Name
, Middle_Name
, Last_Name
, designation
, Company_Name
, Email_Office
, Email_Personal1
, Email_Personal2
, Personal_Mobile1
, Personal_Mobile2
, COUNT(*)
FROM mytable
GROUP
BY First_Name
, Middle_Name
, Last_Name
, designation
, Company_Name
, Email_Office
, Email_Personal1
, Email_Personal2
, Personal_Mobile1
, Personal_Mobile2
HAVING COUNT(*) = 1
) temp
ON temp.first_name = ft.First_Name
AND temp.middle_name = ft.Middle_Name
AND temp.last_name = ft.Last_Name
AND temp.designation = ft.Designation
AND temp.company_name = ft.Company_Name
AND temp.email_office = ft.Email_Office
AND temp.email_personal1 = ft.Email_Personal1
AND temp.email_personal2 = ft.Email_Personal2
AND temp.personal_mobile1 = ft.Personal_Mobile1
AND temp.personal_mobile2 = ft.Personal_Mobile2
WHERE srno <= 1000;
它花了这么多时间来执行对fulldata的查询,因为它有数百万。这就是为什么我要将where
条件显示为高达1000的记录。
它在Emails
,Names
的3列中显示重复。任何人都可以帮我解决这个问题吗?或者我这样做会更复杂吗?
另外如何获取那些count(*) > 1
的记录,如何只记录其中一条记录而忽略其他重复记录?
以下是我的示例表格表示。
+-----------+------------+----------+-------------------+-------------+----------------+-----------------+---------------------+------------+------------+
| FirstName | MiddleName | LastName | Designation | CompanyName | Email(o) | Email(P1) | Email(P2) | Mobile(pl) | Mobile(p2) |
+-----------+------------+----------+-------------------+-------------+----------------+-----------------+---------------------+------------+------------+
| Anil | | | Personnel Manager | ABC | anilgabc.com | anilggmail.com | | 9898989898 | |
| Anil | D | Gupta | Personnel Manager | ABC | anilggmail.com | | | | |
| Anil | D | | | ABC | anilg@abc.com | | | | |
| Anil | | Gupta | Personnel Manager | | | | anilgreditfmail.com | 9898989898 | |
| Anil | | Gupta | | ABC | | | | 9898989898 | |
| Anil | D | Gupta | Personnel Manager | ABC | anilgabc.com | anilg@gmail.com | anilgrediffmail.com | 9898989898 | |
+-----------+------------+----------+-------------------+-------------+----------------+-----------------+---------------------+------------+------------+
这是理想的结果......