シナリオ:
あなたはSQLServer開発者として働いています。重複レコードと重複レコードの数を返すdbo.Customerテーブルのクエリを作成する必要があります。解決策:
Group by and Count集計関数を使用して、テーブル内のすべての重複レコードを検索し、カウントできます。たとえば、以下の定義とデータを持つdbo.Customerテーブルがあるとします。 FName、LName、CountryShortNameの列で重複しているレコードを検索します。
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), SaleAmount Int) GO --Insert Rows in dbo.Customer Table insert into dbo.Customer Values ( 1,'Raza','M','PK',10), (2,'Rita','John','US',12), (3,'Sukhi','Singh',Null,25), (4,'James','Smith','CA',60), (5,'Robert','Ladson','US',54), (6,'Alice','John','US',87), (6,'Raza','M','Pk',Null)
クエリを書いてみましょう。count(*)を使用して選択リストにすべての列を含め、同じ列でグループ化します。最後に、Having句を使用して、重複するレコードをフィルタリングします。
SELECT fname, lname, countryshortname, Count(*) AS RecordCount FROM dbo.customer GROUP BY fname, lname, countryshortname HAVING Count(*) > 1
データから、FName、LName、および国の短縮名によって重複する唯一のレコードは「Raza」、「M」、「PK」であり、クエリによって返される合計2つのレコードがあることがわかります。
SQLServerでGroupby句とHaving句を使用して重複レコードを検索する方法