在SQL server中保留字段A的最小值和字段B的相应值
假设我有下表:在SQL server中保留字段A的最小值和字段B的相应值,sql,sql-server,group-by,aggregate-functions,min,Sql,Sql Server,Group By,Aggregate Functions,Min,假设我有下表: Category rank score a 3 100 a 1 105 a 2 110 b 2 102 b 7 107 b 3 95 我想知道最有效和最优雅的方式来获得每一个类别的最低排名 在我的例子中,结果是 Category rank score a 1 105 b 2 102 我提出的解决方案似乎效率低下,而且很
Category rank score
a 3 100
a 1 105
a 2 110
b 2 102
b 7 107
b 3 95
我想知道最有效和最优雅的方式来获得每一个类别的最低排名
在我的例子中,结果是
Category rank score
a 1 105
b 2 102
我提出的解决方案似乎效率低下,而且很难看,因为有些东西似乎很简单。一个典型的解决方案是使用行数:
您认为这是否优雅是一个意见问题。一个典型的解决方案是使用行号:
您认为这是否优雅是一个意见问题。下面的解决方案使用了CTE的概念
with cte as
(
select category, rank, score, ROW_NUMBER() OVER(PARTITION BY category ORDER BY rank ) AS row_num
from t
)
select category, rank, score from cte
where row_num=1
下面的解决方案使用了CTE的概念
with cte as
(
select category, rank, score, ROW_NUMBER() OVER(PARTITION BY category ORDER BY rank ) AS row_num
from t
)
select category, rank, score from cte
where row_num=1