Я ищу способ обработки следующего сценария. У меня есть таблица базы данных, в которой мне нужно вернуть только одну запись для каждого «идентификатора группы», который содержится в таблице, кроме того, запись, выбранная в каждой группе, должна быть самым старым лицом в семье.SQL-запрос для возврата только 1 записи на группу 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
Таким образом, в выборочных данных, приведенных выше I потребуется ID 1 и 3 возвращается, так как они являются древнейшими людьми в пределах каждой группы ид.
Это запрос к базе данных SQL Server 2005.
Если вы хотите получить имя, у вас все еще будет возможность выбрать> 1 строку, если у вас есть> 1 человек со старейшим возрастом. Вы также должны установить критерии того, какое имя выбрать в этом случае. –
Хорошая точка Крис. Я пытался немного упростить вопрос, но это оставляет такие дыры :-) У меня на самом деле есть другое поле для пола, поэтому я ищу, чтобы выбрать самого старого мужчину в семье. если есть мужчина, то самая старая женщина. В случае, если в одном домохозяйстве с одним и тем же возрастом есть два самца, тогда мне нужно выбрать только одну запись. Это может быть основано на чем-то таком же простом, как человек с наименьшим идентификационным номером для тай-брейкера. –
Существует хорошая дискуссия по этой проблеме в разделе 21.4 «Экстремальные функции» превосходной книги Джо Селко «SQL for Smarties». Если вы собираетесь столкнуться с чем-то более сложным, чем простые SELECT и INSERT, я настоятельно рекомендую эту книгу. – shoover