我不知道如何为此计算技能已经写了一个替换选择你可以加入它并相应地更新行。还创建了一些 9 行的示例数据;最后两个 H 和我有相同的技能和学校,但不同的年龄(一天)。假设你有出生日期,最大值/最小值将起作用。您仍然可以拥有相同年龄的球员,因此需要有一个机制来处理这个问题。不确定标准,所以这里不适合。
declare @players table (school varchar(100), weight float, skill int, dob datetime, name varchar(100))
insert into @players
select 'a', 100, 10, GETDATE(), 'a'
union all select 'a', 101, 11, GETDATE(), 'b'
union all select 'a', 102, 12, GETDATE(), 'c'
union all select 'a', 103, 13, GETDATE(), 'd'
union all select 'a', 104, 14, GETDATE(), 'e'
union all select 'a', 105, 15, GETDATE(), 'f'
union all select 'a', 106, 16, GETDATE(), 'g'
union all select 'a', 107, 17, GETDATE(), 'h'
union all select 'a', 107, 17, dateadd(dd,-1,GETDATE()), 'i'
select * from @players
SELECT
school,
weight,
max(skill) as Skill,
MIN(dot) as DOB
FROM @players b
group by school, weight
这返回;8 排并选择 107 名体重类别的球员中较年轻的。
school weight (No column name) (No column name)
a 100 10 2012-04-23 08:53:19.877
a 101 11 2012-04-23 08:53:19.877
a 102 12 2012-04-23 08:53:19.877
a 103 13 2012-04-23 08:53:19.877
a 104 14 2012-04-23 08:53:19.877
a 105 15 2012-04-23 08:53:19.877
a 106 16 2012-04-23 08:53:19.877
a 107 17 2012-04-22 08:53:19.877