在以下情况下如何获得最大值(SQL Server)

问题描述 投票:0回答:1

我有下面的表格

ID      Code
1       A001
2       A001
3       A001
4       A002
5       A001
6       A002

我想获得最大ID,其中代码= A001(但ID应该为3,因为如果ID = 4,则代码​​= A002)

还有另一个例子

ID      Code
1       A001
2       A002
3       A001
4       A002
5       A001
6       A002

结果应为ID = 1

sql max id
1个回答
0
投票
WITH TEMP
AS (
    SELECT ID
        ,CASE 
            WHEN LAG(Code, 1, 0) OVER (
                    ORDER BY iD
                    ) = Code
                THEN 1
            ELSE 0
            END diff
    FROM test
    )
SELECT MAX(ID)
FROM TEMP
WHERE TEMP.diff = 1

Fiddle Demo

© www.soinside.com 2019 - 2024. All rights reserved.