Recherche de la valeur la plus courante pour chaque valeur dans une autre colonne en SQL
Lorsque vous travaillez avec des données tabulaires, il est souvent nécessaire d'identifier le valeurs les plus fréquentes pour une colonne particulière. Dans le contexte de SQL, cela peut être réalisé en utilisant diverses méthodes.
Approche conventionnelle :
Une approche courante consiste à utiliser une série d'étapes intermédiaires, comme démontré dans la question. Cela implique de créer des tables temporaires pour compter les occurrences, identifier les valeurs maximales et regrouper les résultats de manière appropriée. Bien que cette méthode soit fonctionnelle, elle peut être lourde et sujette aux erreurs.
Solution élégante :
Les versions modernes de SQL, telles que PostgreSQL 9.4 et versions ultérieures, offrent des solutions pour cette tâche. La fonction mode() renvoie la valeur la plus courante au sein d'un groupe spécifié. Cela élimine le besoin d'agrégation et de manipulation complexes.
Exemple :
Considérez le tableau suivant :
Column | Type | Modifiers |
---|---|---|
country | text | |
food_id | int | |
eaten | date |
Pour trouver la nourriture qui est consommé le plus souvent pour chaque pays, on peut utiliser la requête suivante :
select mode() within group (order by food_id) from munch group by country
Cette requête renvoie directement le mode pour chaque pays, offrant une approche plus simple et efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!