«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как найти старшего человека в каждой группе в SQL?

Как найти старшего человека в каждой группе в SQL?

Опубликовано в 2025-03-04
Просматривать:110

How to Find the Oldest Person in Each Group in SQL?

эффективно извлечь записи с высшим уровнем в сгруппированных данных SQL

]

Этот пример демонстрирует, как идентифицировать самого старого человека в каждой группе в таблице SQL, рассматривая алфавитный порядок разрешения связей. Структура таблицы включает в себя колонки «человек», «группа» и «возраст»:

]

пример таблицы:

] ] ] ] ] ] ] ] ] ] ] ] ] shawn 1 42 ] ] Джейк 2 29 ] paul ] ] ] laura ] ] ] ]
Человек Группа Возраст
bob 1 32
jill 1 34
] ]
] ]
2 36 ]
2 39 ]
Objective:

найти самого старого человека в каждой группе, приоритетное в алфавитном порядке, если возраст идентичен. ]

SQL Solution:

выберите o.* От людей o Левый присоединение людей B на O.Group = B.Group и (O.Age B. Pperson))) Где B. Pperson ена null;
SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND (o.Age  b.Person))
WHERE b.Person IS NULL;
Объяснение:

Этот запрос использует

Left join

для сравнения каждого человека ( o ) со всеми остальными в одной и той же группе ( b ). on фильтры для рядов, где: ]

    o.age : o ] моложе b (значение o не самым старым). ] o.age = b.age и o.person> b.person
  1. : o - тот же возраст, что и b , но алфавитно позже (значение o не самым старым в алфавитном порядке). ]
  2. , где B.person - это null
, отфильтровав любые ряды из

o , который имел совпадение в b , оставляя только самого старого человека (или в алфавитном уровне сначала, если есть связь) в каждой группе. дальнейшее исследование:

для более полного понимания передовых методов SQL и потенциальных ловушек см. В таких ресурсах, как «SQL Antipatterns Том 1: Избегание ловушек программирования базы данных». ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3