Eコマースサイトのトランザクションレベルデータを含むテーブルを検証し、正確なエラーを見つけます。
SQL Serverの50列のテーブルで重複するレコードを見つけてください。
私のデータは次のとおりだと仮定します:
OrderNo shoppername amountpayed city Item
1 Sam 10 A Iphone
1 Sam 10 A Iphone--->>Duplication to be detected
1 Sam 5 A iPod
2 John 20 B Macbook
3 John 25 B Macbookair
4 Jack 5 A iPod
以下のクエリを使用するとします。
Select shoppername,count(*) as cnt
from dbo.sales
having count(*) > 1
group by shoppername
私を返します
Sam 2
John 2
しかし、1列または2列を超える重複を見つけたくありません。データ内のすべての列の重複を見つけたい。結果を次のようにしたい:
1 Sam 10 A Iphone
with x as (select *,rn = row_number()
over(PARTITION BY OrderNo,item order by OrderNo)
from #temp1)
select * from x
where rn > 1
select文を次のように置き換えることで重複を削除できます
delete x where rn > 1
SELECT OrderNo, shoppername, amountPayed, city, item, count(*) as cnt
FROM dbo.sales
GROUP BY OrderNo, shoppername, amountPayed, city, item
HAVING COUNT(*) > 1
SQL> SELECT JOB,COUNT(JOB) FROM EMP GROUP BY JOB;
JOB COUNT(JOB)
--------- ----------
ANALYST 2
CLERK 4
MANAGER 3
PRESIDENT 1
SALESMAN 4
すべてのフィールドをクエリに追加するだけで、それらをGroup Byにも追加することを忘れないでください。
Select shoppername, a, b, amountpayed, item, count(*) as cnt
from dbo.sales
group by shoppername, a, b, amountpayed, item
having count(*) > 1
複数のレコードのリストを取得するには、次のコマンドを使用します
select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1
これを試して
with T1 AS
(
SELECT LASTNAME, COUNT(1) AS 'COUNT' FROM Employees GROUP BY LastName HAVING COUNT(1) > 1
)
SELECT E.*,T1.[COUNT] FROM Employees E INNER JOIN T1 ON T1.LastName = E.LastName
代わりにこれを試してください
SELECT MAX(shoppername), COUNT(*) AS cnt
FROM dbo.sales
GROUP BY CHECKSUM(*)
HAVING COUNT(*) > 1
重複する可能性があるため、最初に CHECKSUM 関数についてお読みください。
以下のメソッドを使用して出力を見つけることができます
with Ctec AS
(
select *,Row_number() over(partition by name order by Name)Rnk
from Table_A
)
select Name from ctec
where rnk>1
select name from Table_A
group by name
having count(*)>1
with x as (
select shoppername,count(shoppername)
from sales
having count(shoppername)>1
group by shoppername)
select t.* from x,win_gp_pin1510 t
where x.shoppername=t.shoppername
order by t.shoppername