第二列的最小值,取第一和第三
MINIMUM on second column, take first and third
DECLARE @Foo TABLE (Id INT, PozId INT, Val INT)
INSERT @Foo (Id, PozId, Val)
VALUES
(1, 1, 34),
(1, 2, 976),
(2, 1, 235),
(2, 2, 792),
(3, 2, 456),
(3, 3, 123)
如何从上面的查询中得到这样的结果?
(1, 1, 34)
(2, 1, 235)
(3, 2, 456)
这会给您带来想要的结果。查询对您的 ID 进行分区并选择最低的 PozitionId。
DECLARE @Foo TABLE
(
Id INT, PozId INT, Val INT
);
INSERT @Foo
(Id, PozId, Val)
VALUES
(1, 1, 34)
, (1, 2, 976)
, (2, 1, 235)
, (2, 2, 792)
, (3, 2, 456)
, (3, 3, 123);
SELECT Id, PozId, Val
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Id ORDER BY PozId) AS RowNo, *
FROM @Foo
) AS T
WHERE RowNo = 1;
DECLARE @Foo TABLE (Id INT, PozId INT, Val INT)
INSERT @Foo (Id, PozId, Val)
VALUES
(1, 1, 34),
(1, 2, 976),
(2, 1, 235),
(2, 2, 792),
(3, 2, 456),
(3, 3, 123)
如何从上面的查询中得到这样的结果?
(1, 1, 34)
(2, 1, 235)
(3, 2, 456)
这会给您带来想要的结果。查询对您的 ID 进行分区并选择最低的 PozitionId。
DECLARE @Foo TABLE
(
Id INT, PozId INT, Val INT
);
INSERT @Foo
(Id, PozId, Val)
VALUES
(1, 1, 34)
, (1, 2, 976)
, (2, 1, 235)
, (2, 2, 792)
, (3, 2, 456)
, (3, 3, 123);
SELECT Id, PozId, Val
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Id ORDER BY PozId) AS RowNo, *
FROM @Foo
) AS T
WHERE RowNo = 1;