我对这些之间的差异感到困惑.运行以下SQL会获得两个完美的结果集.有人可以解释一下这些差异吗?
SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
Run Code Online (Sandbox Code Playgroud) 我希望有一种简单的方法可以在不使用子查询的情况下执行此操作:
场景:您有"TableA",其中包含"Key","SubKey"和"Value"列.对于给定的"Key",我需要获得MAX("SubKey")的"Value".
因此,如果表包含行:
KEY SUBKEY VALUE
1 1 100
1 2 200
1 3 300
Run Code Online (Sandbox Code Playgroud)
对于Key = 1,我需要值300.我希望做到这样的事情:
SELECT
VALUE
FROM
TableA
WHERE
Key = 1
HAVING
SubKey = MAX(SubKey)
Run Code Online (Sandbox Code Playgroud)
但那是不行的.有没有办法在不执行'WHERE SubKey =(subselect for max subkey)'的情况下执行此操作?