すぐに誰かが私に困惑していることを知っていると思いますので、事前に感謝します。私は名前と郵便番号のフィールドにグループバイを使ってサブクエリを持っています、グループカウント> 1のためにフィルタリングします。私は528グループを取得します。個々の完全なレコードを見たいので、名前と郵便番号のフィールドにこの結果セットを内部結合します。各副照会行は少なくとも2つのレコードを表しているため、少なくとも2つのX 528レコードが最小限になることが予想されます。しかし、私は190行しか得られず、私のロジックの欠陥を理解することはできません。SQLGroup-byサブクエリ
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
「各サブクエリー行は少なくとも2つのレコードを表します」は間違っています。 'm1'の各行について、' x'に0または1の行があります。 –
サンプルデータ、期待される結果、およびそれらの説明を提供します。誰かがあなたの仕事を解決するのに役立つかもしれません。 –
xの各行について、 m1に少なくとも2つの行があるはずです。 – user3091705