J'ai une table simple avec des personnes, mais il y a une sorcière champ
supplémentaire contient des informations (personne id) qui est un père/mère
de cette personne, de sorte que le 2 table de dimensions peut contenir un arbre famillialechoisir le nom d'une personne avec le plus petits-enfants
la table est
id first_name last_name salary spouse_id father_id mother_id sex
100 Steven King 26400 101 (null) (null) m
101 Neena Kochhar 18700 100 (null) (null) f
102 Lex De Haan 18700 106 100 101 m
103 Alexander Hunold 9900 (null) 100 101 m
104 Bruce Ernst 6600 (null) 102 106 m
105 David Austin 5280 (null) 102 106 m
106 Valli Pataballa 5280 102 (null) (null) f
107 Diana Lorentz 4620 (null) (null) (null) f
108 Nancy Greenberg 13200 109 (null) (null) f
109 Daniel Faviet 9900 108 115 116 m
110 John Chen 9020 (null) 109 108 m
111 Ismael Sciarra 8470 (null) 109 108 m
112 Jose Manuel Urman 8580 (null) 109 108 m
113 Luis Popp 7590 (null) 109 108 m
114 Den Raphaely 12100 (null) 109 108 m
115 Alexander Khoo 3410 116 (null) (null) m
116 Shelli Baida 3190 115 (null) (null) f
la tâche est de sélectionner le nom de la personne qui a le plus grand nombre de petits-enfants
Tout ce que je réussis à faire est:
select
e1.first_name, e1.last_name
--,max (e3.first_name)
,count(e3.first_name) grandchilds
from empnew e1
inner join
empnew e2
on (e1.id = e2.father_id)
inner join
empnew e3
on (e2.id = e3.father_id)
group by e1.first_name, e1.last_name
et le résultat est
first_name last_name grandchilds
Steven King 2
Alexander Khoo 5
s'il vous plaît aider :) ps: s'il est possible que je voudrais obtenir SGBDR réponse indépendante
Vous oubliez les mères. (Lequel, puisque vous n'avez pas de parents seuls, ne vous préoccupe peut-être pas trop). – Tobiasopdenbrouw
S'il s'agit de devoirs, veuillez le marquer comme tel. –
Vous pouvez oublier les mères (mother_id) - ce sera plus facile et je peux le faire sans elle. – Marecky