相关疑难解决方法(0)

SQL RANK()与ROW_NUMBER()

我对这些之间的差异感到困惑.运行以下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)

sql t-sql sql-server

172
推荐指数
4
解决办法
22万
查看次数

T-SQL:根据MAX选择列(其他列)

我希望有一种简单的方法可以在不使用子查询的情况下执行此操作:

场景:您有"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)'的情况下执行此操作?

sql t-sql sql-server greatest-n-per-group

36
推荐指数
2
解决办法
6万
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2

greatest-n-per-group ×1