0
我的表如下取顶部1的记录,比较多个记录基于过滤条件
UserID PreSalary ExpSalary TotalExp NoticePeriod
1 1000 2500 2 30
2 1700 5000 2.6 60
3 8200 10000 5.9 15
4 3000.5 6000.75 4 20
我想比较所有以第一名的成绩排和取前1条具有最靠近第一值记录。
我使用SQL Server 2008版和我查询的尝试是,
Select * from #tbl GROUP by UserID ,PreSalary ,ExpSalary ,TotalExp,NoticePeriod Having (MAX(TotalExp) = (Select top 2 TotalExp from #tbl ) ,MIN(PreSalary) = (Select top 2 PreSalary from #tbl) )
预期的输出是
UserID PreSalary ExpSalary TotalExp NoticePeriod
2 8200 10000 5.9 15
说明: 最后3行的PreSalary用户ID 2胜相比, 比较ExpSalary UserId的最后3行2胜, 比较TotalExp的最后3行UserId 3胜, 比较前3个r NoticePeriod UserId 3ows
如果在两个用户标识之间发生联系,那么TotalExp和NoticePeriod会被赋予优先级。 So USerID 3胜
任何帮助,将不胜感激。谢谢
什么是预期的结果? –
根据以上数据,你期望输出什么? –
为什么跟最后3行比较? –