IF OBJECT_ID('tempdb..#SiteMatches') IS NOT NULL
DROP TABLE #SiteMatches
CREATE TABLE #SiteMatches -- the SOURCE
(ID BIGINT IDENTITY(1,1) NOT NULL,
RetainedRID BIGINT NOT NULL,
SiteID BIGINT NOT NULL,
Country VARCHAR(30)
PRIMARY KEY(ID))
INSERT INTO #SiteMatches
SELECT 137478, 1, 'UK' UNION ALL
SELECT 87728738, 1, 'UK' UNION ALL
SELECT 95615, 1, 'UK' UNION ALL
SELECT 851566, 2, 'SCOTLAND' UNION ALL
SELECT 447422, 2, 'SCOTLAND' UNION ALL
SELECT 188827, 2, 'SCOTLAND' UNION ALL
SELECT 326887, 2, 'SCOTLAND'
IF OBJECT_ID('tempdb..#SiteMatches_Output') IS NOT NULL
DROP TABLE #SiteMatches_Output
CREATE TABLE #SiteMatches_Output -- the DESTINATION
(ID BIGINT IDENTITY(1,1) NOT NULL,
RetainedRID BIGINT NOT NULL,
SiteID BIGINT NOT NULL,
Country VARCHAR(100),
PRIMARY KEY(ID))
INSERT INTO #SiteMatches_Output
SELECT 137478, 1, 'UK' UNION ALL
SELECT 87728738, 1, 'UK' UNION ALL
SELECT 95615, 1, 'UK' UNION ALL
SELECT 851566, 2, 'SCOTLAND' UNION ALL
SELECT 447422, 2, 'SCOTLAND' UNION ALL
SELECT 188827, 2, 'SCOTLAND' UNION ALL
SELECT 326887, 2, 'SCOTLAND'
/* GROUPED BY*/
--variation 1
SELECT
ROW_NUMBER() OVER (PARTITION BY S1.ID ORDER BY S1.SiteID) AS RowNum
,S1.ID
,S1.RetainedRID
,S1.SiteID
,S1.CountryFROM
,#SiteMatches_Output S1
--variation 2
SELECT
ROW_NUMBER() OVER (PARTITION BY S2.RetainedRID ORDER BY S2.SiteID) AS RowNum
,S2.ID
,S2.RetainedRID
,S2.SiteID
,S2.Country
FROM
#SiteMatches_Output S2
--variation 3
SELECT
ROW_NUMBER() OVER (PARTITION BY S3.Country ORDER BY S3.SiteID DESC) AS RowNum
,S3.ID
,S3.RetainedRID
,S3.SiteID
,S3.Country
FROM
#SiteMatches_Output S3