userid email_address login_name name Title org phone_number_com
============= ========================== =============== ================== ========== ============= ===================
1192 [email protected] sjobs Steve Jobs CEO Apple N/A
1274 [email protected] sjobs Steve Jobs CFO Apple 697-4686
1192 [email protected] sjobs Steven jobs CEO Apple 604-7126
1885 [email protected] bgates Bill Gates CEO Microsoft 604-7114
1920 [email protected] bgates William Gates CTR Microsoft 604-7247
1951 [email protected] wbuffet Warren Buffet CEO HP 614-9141
1954 [email protected] wbuffet W. Buffet COO HP 614-7589
1951 [email protected] wbuffet Warren S Buffet CIO Xerox 614-8874
1956 [email protected] mzuck Mark Zuckerberg CEO FB 614-8295
QUERY
SELECT *
FROM
(
SELECT userid, name, login_name, email_address, phone_number_com,
ROW_NUMBER() OVER(PARTITION BY [login_name] ORDER BY login_name) Num_Duplicates
FROM web_user
) as Rows
WHERE Num_Duplicates > 1
這是我的第一篇文章,希望我下面所有的程序。我得到一個結果集,它顯示了重複的第2和第3行。我試圖GROUP BY
login_name
並只顯示最高的行Num_Duplicates
。如果一個login_name
有一個Num_Duplicates
的2和3,只顯示行3.我希望這是有道理的!預先感謝您提供的任何指導。
這些都是結果,我想輸出查詢:
userid | email_address | login_name | name | Title | org phone_number_com | Num_Duplicates
1192 | [email protected] | sjobs | Steve Jobs | CEO | Apple | N/A | 3
1885 | [email protected] | bgates | Bill Gates | CEO | Microsoft | 604-7114 | 2
1951 | [email protected] | wbuffet | Warren Buffet | CEO | HP | 614-9149 | 3
你爲什麼需要行號? – serakfalcon 2015-02-06 18:08:37
你會添加你想要的結果嗎? – RezaRahmati 2015-02-06 18:11:55
爲什麼只顯示第三個?您正在按login_name進行分組和排序,這意味着每個組內的順序是任意的,並且每次執行時都會有所不同。所以1,2,3 ..他們都是一樣的。爲什麼只顯示3?爲什麼不只顯示2或只顯示1? – 2015-02-06 18:16:44