我有一个子查询,其中包含以下内容
PreviousRateCode,CurrentRateCode,PreviousReportDate,CurrentReportDate,TransactionDate。
我的子查询中的数据看起来像
如何查询下面的结果以获得最小的" RecentDerogMonths"基于最大的" WorstDerogLevel" ? 我省略了一个附加列,它有一个customerID,所以我需要最小的" RecentDerogMonths"基于最大的" WorstDerogLevel"对于每个客户,这是一个更大的选择的子查询,所以我需要的是像
Select Lowest Months by highest level
From (The result above)
Group by CustomerID
答案 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);