"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como encontrar a pessoa mais velha em cada grupo no SQL?

Como encontrar a pessoa mais velha em cada grupo no SQL?

Postado em 2025-03-04
Navegar:912

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

Recuperando com eficiência os registros mais bem classificados em dados SQL agrupados

Este exemplo demonstra como identificar a pessoa mais antiga de cada grupo em uma tabela SQL, considerando a ordem alfabética para resolver laços. A estrutura da tabela inclui colunas 'pessoa', 'grupo' e 'idade':

Tabela de exemplo:

Pessoa Grupo Idade
Prumo 1 32
Jill 1 34
Shawn 1 42
Jake 2 29
paul 2 36
laura 2 39

Objetivo: Encontre a pessoa mais velha em cada grupo, priorizando alfabeticamente se as idades forem idênticas.

SQL Solution:

SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND (o.Age  b.Person))
WHERE b.Person IS NULL;

Explicação:

Esta consulta usa um esquerda junção para comparar cada pessoa ( o ) com todos os outros no mesmo grupo ( b ). A cláusula na cláusula na cláusula para linhas onde:

  1. o.age : o é mais jovem que b (significado o não é o mais antigo).
  2. o.age = b.age e o.person> b.person : o tem a mesma idade que b , mas alfabeticamente posterior (significado o não é a mais antiga em alfabética).
o

onde a cláusula null filtra as linhas de o que tinham uma correspondência em b , deixando apenas a pessoa mais velha (ou alfabeticamente primeiro se houver um empate) em cada grupo.

exploração adicional:

Para uma compreensão mais abrangente das técnicas avançadas de SQL e possíveis armadilhas, consulte recursos como "SQL Antipatterns Volume 1: Evitando as armadilhas da programação do banco de dados".
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3