Ich habe eine Tabelle wie folgt aus:So gruppieren ähnliche Zeilen in SQL Server
Date ConfigID ItemID ClientName Metric1 Metric2
==== ======== ====== ========== ======= =======
2017-01-01 1 1 A 2.0 2.0
2017-01-01 3 1 A 2.0 2.0
2017-01-01 4 2 B 5.0 5.0
2017-01-02 4 3 A 6.0 6.0
2017-01-01 2 1 A 2.0 2.0
....
(20 million rows here)
ich die Duplikate hier basierend auf Date
, ItemID
, ClientName
, Metric1
und Metric2
, also schrieb ich erkennen wollte:
CREATE TABLE MyTable ([Date] date,
ConfigID int,
ItemID int,
ClientName char(1),
Metric1 decimal(3,1),
Metric2 decimal(3,1));
INSERT INTO MyTable
VALUES ('2017-01-01',1,1,'A',2.0,2.0),
('2017-01-01',3,1,'A',2.0,2.0),
('2017-01-01',4,2,'B',5.0,5.0),
('2017-01-02',4,3,'A',6.0,6.0),
('2017-01-01',2,1,'A',2.0,2.0);
WITH Dupes
AS (
SELECT *
,ROW_NUMBER() OVER (
PARTITION BY
[Date]
,[ItemID]
,[ClientName]
,[Metric1]
,[Metric2]
ORDER BY [Date] DESC
) AS RowNum
FROM myTable)
SELECT *
FROM Dupes
Aber das gibt so etwas wie dieses:
Date ConfigID ItemID ClientName Metric1 Metric2 RowNum
==== ======== ====== ========== ======= ======= ======
2017-01-01 1 1 A 2.0 2.0 1
2017-01-01 3 1 A 2.0 2.0 2
2017-01-01 4 2 B 5.0 5.0 1
2017-01-02 4 3 A 6.0 6.0 1
2017-01-01 2 1 A 2.0 2.0 3
....
(20 million rows here)
Ich möchte die ähnlichen Artikel basierend auf der PARTITION BY
Klausel gruppieren. Mit anderen Worten, würde Ich mag so etwas sehen (ich weiß nicht wirklich RowNum
brauchen):
Date ConfigID ItemID ClientName Metric1 Metric2 RowNum
==== ======== ====== ========== ======= ======= ======
2017-01-01 1 1 A 2.0 2.0 1
2017-01-01 3 1 A 2.0 2.0 2
2017-01-01 2 1 A 2.0 2.0 3
2017-01-01 4 2 B 5.0 5.0 1
2017-01-02 4 3 A 6.0 6.0 1
....
(20 million rows here)
Abfrage Was SQL mir helfen Gruppe in einer Tabelle das Duplikat/ähnliche Zeilen würde? Vielen Dank im Voraus für Vorschläge und Antworten!
Was meinst du mit "Gruppe" sie? Möchten Sie sie nicht in Ihrem Dataset zurückgeben? Aggragate sie? Etwas anderes? – Larnu
@Larnu, ich meine, ich möchte sie manuell überprüfen, um zu sehen, wo die Dinge anders sind (z. B. kann ich sehen, wie viele verschiedene ConfigID die gleichen Werte in anderen Spalten haben). – user1330974