如何为每个用户获取最小和最大的唯一记录

时间:2015-05-14 12:35:51

标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

我有下表:

id  gender  age highest weight  lowest weight   abc
a   f       30  90              70              1.3
a   f       30  90              65              null
a   f       30  null            null            1.3
b   m       40  100             86              2.5
b   m       40  null            80              2.5
c   f       50  105             95              6.4

我需要sql server中的结果。我需要的是重量和最大重量的最小值和每个用户一个记录。

id  gender  age highest weight  lowest weight   abc
a   f       30  90              65              1.3
b   m       40  100             80              2.5
c   f       50  105             95              6.4

2 个答案:

答案 0 :(得分:4)

只做一个分组:

select id, 
       max(gender), 
       max(age), 
       max([highest weight]), 
       min([lowest weight]), 
       max(abc)
from SomeTable
group by id

答案 1 :(得分:2)

您可以使用分组执行此操作:

select id, gender, max(highest_weight), min(lowwest_weight) from student
group by id, gender

但您需要为具有变量值的其他字段定义规则,例如abc

你能发布更多信息吗?