我正在寻找一种方法来处理下面的场景。我有一个数据库表,我只需要为表中包含的每个“组ID”返回一条记录,而且在每个组中选择的记录应该是家庭中年龄最大的人。
ID Group ID Name Age
1 134 John Bowers 37
2 134 Kerri Bowers 33
3 135 John Bowers 44
4 135 Shannon Bowers 42
因此,在上面提供的示例数据中,我需要返回ID 1和3,因为他们是每个组ID中年龄最大的人。
这是针对SQL Server 2005数据库查询的。
5条答案
按热度按时间camsedfj1#
或以下内容:
即使出现并列,每组也最多返回一条记录。
有关这两种方法的性能比较,请参阅我的博客中的这篇文章:
57hvy0tb2#
用途:
如果一组有2个以上年龄相同的人,那又怎么样呢?最好是存储生日而不是年龄--你总是可以计算出年龄来展示。
cyvaqqii3#
试试这个(假设 Group 是 Household 的同义词)
如果某个家庭中有两个或更多“最老”的人(他们都是相同的年龄,没有比他们更老的人),那么这将返回所有人,而不仅仅是随机返回一个。
如果这是一个问题,则需要添加另一个子查询,以便为该集合中的一个人返回任意键值。
vaqhlq814#
jv2fixgn5#