Requête SQL pour compter () plusieurs tables
J'ai une table qui a plusieurs de nombreuses relations avec d'autres tables. Disons que la table principale est une personne, et les autres tableaux représentent des animaux, des voitures et des enfants. Je voudrais une requête qui renvoie les coordonnées de la personne,le nombre d'animaux de compagnie, des voitures et des enfants qu'ils ont par exemple
Personne.Nom de Comte(voitures) Count(enfants) Count(animaux de compagnie) John Smith 3 2 4 Bob Brown 1 3 0
Quelle est la meilleure façon de le faire?
source d'informationauteur macleojw
Vous devez vous connecter pour publier un commentaire.
Sous-requête d'Affacturage (9i+):
En ligne vues:
vous pouvez utiliser le
COUNT(distinct x.id)
syntaxe:Je serais probablement faire comme ceci:
Remarque, qu'il dépend de votre goût de SGBDR, s'il prend en charge imbriqués sélectionne comme suit:
Autant que je me souvienne, cela fonctionne au moins avec PostgreSQL et MSSQL. Pas testé, donc, votre kilométrage peut varier.
En utilisant les sous-sélections n'est pas très bonne pratique, mais peut-être ici, il sera bon
Vous pouvez le faire avec trois jointures externes:
Je pense que l'Oracle prend désormais en charge la
case when
la syntaxe, mais si pas, vous pouvez utiliser une décoder.Vous devrez inclure de multiples compter énoncés dans la requête. Sur le dessus de ma tête,