, , temp:
SELECT GRP, A, B,
ROW_NUMBER() OVER (PARTITION BY A ORDER BY GRP, A) ARank,
ROW_NUMBER() OVER (PARTITION BY B ORDER BY GRP, B) BRank
INTO
FROM MyTable
SELECT t1.GRP,
(SELECT TOP 1 A FROM
(SELECT TOP 1 B FROM
FROM MyTable t1
GROUP BY T1.GRP
DROP TABLE
:
CREATE TABLE MyTable
([GRP] varchar(3), [A] int, [B] int)
;
INSERT INTO MyTable
([GRP], [A], [B])
VALUES
('Cat', 1, 1),
('Cat', 2, 1),
('Cat', 3, 2),
('Cat', 3, 3),
('Dog', 5, 6),
('Dog', 5, 7),
('Dog', 6, 7)
;
1:
SELECT GRP, A, B,
ROW_NUMBER() OVER (PARTITION BY A ORDER BY GRP, A) ARank,
ROW_NUMBER() OVER (PARTITION BY B ORDER BY GRP, B) BRank
INTO
FROM MyTable
SELECT t1.GRP,
(SELECT TOP 1 A FROM
(SELECT TOP 1 B FROM
FROM MyTable t1
GROUP BY T1.GRP
DROP TABLE
:
| GRP | A | B |
|-----|---|---|
| Cat | 3 | 1 |
| Dog | 5 | 7 |