は、私はこのような表が持っているどのようにSQL Server内のグループ同様の行に
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
しかし、それはこのような何かを返す:
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)
0を
PARTITION BY
句に基づいて同様の項目をグループ化したいと思います。言い換えれば、私は(私は本当にRowNum
を必要としない)、このようなものを見てみたいと思います:
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)
何SQLクエリは、グループにテーブル内の類似した/重複行を私を助けるでしょうか?進んでいただきありがとうございます。
「グループ化」するとどういう意味ですか?あなたのデータセットにそれらを戻したくないですか?それらを集める?他に何か? – Larnu
@ Larnu、私はそれらを手動で見直して、物事が違うところを見たいと思っていました(例えば、他の列にいくつの異なるConfigIDが同じ値を持っているか分かります)。 – user1330974