Requête SQL pour revenir à seulement 1 enregistrement par l'ID de groupe

Je suis à la recherche d'un moyen de gérer le scénario suivant. J'ai une table de base de données que j'ai besoin de retourner un seul enregistrement pour chaque "group id" qui est contenue dans la table, en outre, l'enregistrement est sélectionné à l'intérieur de chaque groupe doit être la personne la plus âgée du ménage.

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

Ainsi, dans l'échantillon de données ci-dessus j'aurais besoin de l'ID 1 et 3 est retournée, comme ils sont les plus anciens les gens à l'intérieur de chaque groupe id.

C'est interrogée sur un Serveur SQL server 2005 bases de données.

Si vous souhaitez que le nom, vous avez encore la chance de choix >1 ligne si vous avez >1 personne avec les plus âgés. Vous devrez également établir des critères de choisir un nom en tant que bien dans ce cas.
Bon point de Chris. Est a été d'essayer de simplifiy la question, un peu, mais qui laisse des trous comme celles-ci 🙂 en fait, j'ai un autre champ pour le sexe, donc je suis à la recherche pour sélectionner le mâle le plus âgé au sein d'un ménage. s'il est de sexe masculin, puis la femelle la plus âgée. Dans le cas où il y a deux hommes dans le même ménage avec le même âge alors j'ai besoin de sélectionner seulement 1 des enregistrements. Cela pourrait être basied sur quelque chose d'aussi simple que la personne avec le plus petit numéro d'identification pour les départager.
Il y a une bonne discussion de ce genre de problème dans l'article 21.4, "Extrema des Fonctions", de Joe Celko de l'excellent livre "SQL pour les Smarties". Si vous allez être en cours d'exécution dans quelque chose de plus compliqué que la simple Sélectionne et INSERTs, je recommande fortement ce livre.

OriginalL'auteur Richard West | 2009-12-23