根据第二列中最大的列查询表的最小值

时间:2017-12-19 15:04:57

标签: sql sql-server sql-server-2008

我有一个子查询,其中包含以下内容

PreviousRateCode,CurrentRateCode,PreviousReportDate,CurrentReportDate,TransactionDate。

我的子查询中的数据看起来像

enter image description here

如何查询下面的结果以获得最小的" RecentDerogMonths"基于最大的" WorstDerogLevel" ? 我省略了一个附加列,它有一个customerID,所以我需要最小的" RecentDerogMonths"基于最大的" WorstDerogLevel"对于每个客户,这是一个更大的选择的子查询,所以我需要的是像

Select Lowest Months by highest level
From (The result above)
Group by CustomerID

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

select top 1 t.*
from t
order by WorstDerogLevel desc, RecentDerogMonths asc;

如果您想要符合条件的所有匹配行,请使用select top (1) with ties

编辑:

每位客户,您使用窗口功能。一种方法使用子查询,但这是一个很酷的技巧:

select top (1) with ties t.*
from t
order by row_number() over (partition by customerid order by WorstDerogLevel desc, RecentDerogMonths asc);