Maison >base de données >tutoriel mysql >Comment trouver l'identifiant alimentaire le plus fréquent par pays en SQL ?

Comment trouver l'identifiant alimentaire le plus fréquent par pays en SQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 14:50:10756parcourir

How to Find the Most Frequent Food ID per Country in SQL?

Recherche de la valeur la plus courante pour une colonne en fonction de la valeur d'une autre colonne dans SQL

Dans un scénario où une table contient plusieurs colonnes, telles que "country", "food_id" et "eaten", une tâche courante consiste à déterminer la valeur la plus fréquente pour une colonne ("food_id") dans chaque valeur unique d'une autre colonne ("pays").

Une approche, comme mentionné dans la question, consiste à créer des tables temporaires et à effectuer plusieurs sous-requêtes pour calculer les décomptes, trouver le décompte maximum et récupérer les valeurs "food_id" correspondantes. Bien que fonctionnelle, cette méthode peut sembler lourde.

Heureusement, PostgreSQL 9.4 a introduit une solution plus simple : la fonction mode(). Cette fonction fournit un moyen efficace de trouver la valeur la plus courante pour une colonne spécifiée au sein de chaque groupe défini par une expression de regroupement.

Pour utiliser la fonction mode() pour cette tâche, la requête SQL suivante peut être utilisée :

SELECT mode() within group (order by food_id)
FROM munch
GROUP BY country

Cette requête exploite la fonction mode() pour calculer la valeur « food_id » la plus courante pour chaque valeur « country » unique. La clause Within Group (ORDER BY food_id) garantit que la fonction mode() opère sur la colonne "food_id" au sein de chaque groupe de pays, en classant les valeurs par ordre croissant avant d'identifier le mode.

Le résultat de cette requête , comme également démontré dans la réponse fournie, sera un tableau affichant le "pays" et sa valeur "food_id" la plus courante correspondante :

country | mode
--------------
GB      | 3
US      | 1

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn