我有一個名爲Customer
的表,它包含基於某些字段的重複記錄。
顧客表:
的cust_id
EMAIL_ID
ROLE_ID
DOB
CREATION_DATE根據某些字段(email_id,role_id和dob)和基於條件(creation_date)刪除重複記錄
數據在客戶表是如下:
cust_id email_id role_id dob creation_date
1 [email protected] 5 4/2/1966 17/09/2016
2 [email protected] 5 4/2/1966 20/09/2016
3 [email protected] 5 15/2/1991 18/09/2016
4 [email protected] 5 15/2/1991 21/09/2016
5 [email protected] 5 16/2/1985 30/09/2016
6 [email protected] 5 16/2/1985 05/11/2016
7 [email protected] 5 16/2/1985 04/11/2016
的EMAIL_ID,ROLE_ID和DOB是相同(重複)2個或更多記錄,如上表所示。
我想不同的查詢,這將導致如下:
cust_id email_id role_id dob creation_date
1 [email protected] 5 4/2/1966 17/09/2016
3 [email protected] 5 15/2/1991 18/09/2016
5 [email protected] 5 16/2/1985 30/09/2016
也就是說,除去基於EMAIL_ID,ROLE_ID和出生日期,其CREATION_DATE小於其他重複記錄重複的記錄。
cust_id email_id role_id dob creation_date
2 [email protected] 5 4/2/1966 20/09/2016
4 [email protected] 5 15/2/1991 21/09/2016
6 [email protected] 5 16/2/1985 05/11/2016
也就是說,除去基於EMAIL_ID,ROLE_ID和出生日期,其CREATION_DATE比其他重複的記錄更多的重複記錄。
編輯:對上述問題的反問題。
現在,當我在兩個名爲Customer和Individual的表上加入連接時,如何獲得與上面相同的所需結果。
客戶表:
CUST_ID
EMAIL_ID
ROLE_ID
individaul_id(外鍵)
CREATION_DATE
Individaul表:
使用下面的查詢individaul_id
DOB
:
SELECT c.email_id,c.role_id,i.dob FROM CUSTOMER c
JOIN INDIVIDUAL i on c.individaul_id=i.individaul_id
GROUP BY c.email_id,c.role_id,i.dob
Having count(*) >=2
我使用MSSQL Server 2012的數據庫。
非常感謝提前。
你有太多的聲譽不知道的事實,因此不代碼寫作服務,你需要展示你已經嘗試過。 –
@ZoharPeled,是的。但現在我有點匆忙這是一個生產問題。任何幫助都會很棒。 –