我敢肯定有人會馬上發現我對此感到困惑,所以在此先感謝。我有一個使用group-by名稱和zipcode字段的子查詢,篩選組數> 1.我得到528個組。我想查看單個完整記錄,因此我在名稱和郵政編碼字段上對此結果集執行內部聯接。由於每個子查詢行至少代表兩條記錄,因此我期望至少會看到2條X 528記錄的最小值。但是我只能得到190行,並且無法找出我邏輯中的缺陷。SQLGroup-通過子查詢
select m1.*
from MasterList m1
join
(
select FirstName, LastName, Zipcode, count(*) Cnt
from MasterList m2
group by FirstName, LastName,Zipcode
having count(*) > 1
) x
on m1.FirstName = x.FirstName and
m1.LastName = x.LastName and
m1.Zipcode = x.Zipcode
我希望這是足夠的細節。我不能理解這個連接是如何工作的。但是如果我使用過濾條件而不是連接條件,我會得到相同的結果。再次
感謝, JimK
'每個子查詢行代表至少兩個記錄'是錯誤的。對於'm1'中的每一行,您在'x'中有0或1行 –
提供樣本數據,預期結果和對它們的解釋,可能有人幫助您解決任務 –
我的意思是說,對於x中的每一行, m1中至少應該有兩行。 – user3091705