首页 > 解决方案 > 我怎样才能找到最大值(RowID)

问题描述

我有一个查询,我使用Row_Number().

我想选择 max(RowID) 值,我该怎么做。

select * 
from 
(
    select ROW_NUMBER() OVER (partition by A.Name order by A.Name) AS RowID,  
    --**there are some joins and some where clauses**
) B
where RowID=1
order by Created desc

如果 QueryB 可以包含order by Created desc,我可以选择RowId=1并且问题已解决。但是当我尝试这样做时,我得到了一个错误。

那么,如何获得 max(RowID) 值?

标签: sqlsql-server

解决方案


在函数调用中使用正确的ORDER BY子句:ROW_NUMBER()

select * 
from (
   select 
      ROW_NUMBER() OVER (PARTITION BY A.Name ORDER BY A.Created DESC) AS RowID,  
      -- columns ...
      -- FROM ...
      -- JOIN ...
) B
where B.RowID = 1

推荐阅读