J'essaie de créer une requête qui obtient les noms des personnes qui sont plus grandes de la hauteur moyenne de leur sexe.
Je sais comment obtenir la hauteur moyenne de chaque sexe: P>
mais je ne sais pas comment comparer chaque personne (basée sur son sexe) avec cette sous-requête .. p> Ceci est aussi loin que je pouvais faire: p> merci d'avance. p> p> Sélectionnez AVG (Hauteur), Genre du groupe client par sexe Code> P>
4 Réponses :
Vous pouvez essayer des sous-requêtes, comme ceci:
select *
from client as c inner join
(
SELECT avg(height) as avgh, gender
from client
group by gender
) as t
on c.gender = t.gender and c.height > t.avgh
Vous pouvez rejoindre interne la sous-requête sur le sexe et la hauteur étant plus grande.
SELECT c1.cname
FROM client c1
INNER JOIN (SELECT c2.gender,
avg(c2.height) height
FROM client c2
GROUP BY c2.gender) x
ON x.gender = c1.gender
AND x.height > c1.height;
Merci, mais cela ne donne pas la bonne sortie. (J'ai les réponses ..)
Joindre:
select * from client where height > ( select avg(height) from client all_clients where all_clients.gender = client.gender );
SELECT PplHeight.cname, PplHeight.gender, PplHeight.height FROM client AS PplHeight, (SELECT gender, avg(height) as avg_height from client group by gender) avg_h WHERE PplHeight.gender = avg_h.gender AND PplHeight.height > avg_h.avg_height
colonnes i>, pas champs ...