GROUP BY sur un SELECT CASE

jeudi 3 juillet 2014

Bonjour @ tous.


Je viens de réaliser une requête suffisamment simple pour me donner le résultat escompté au seul problème que je n'ai pas les résultats agrégés sur une seule ligne, je m'explique.


Je tente d'avoir pour une commune de départ, une commune d'arrivée, le nombre d'homme et le nombre de femmes (en tout 4 colonnes + identifiant unique). Je fais donc ma requête :




SELECT DISTINCT row_number() OVER () AS id_unique, commune_depart AS depart, commune_arrivee AS arrivee,
CASE
WHEN sexe = 1 THEN sum(nb)
END AS homme,
CASE
WHEN sexe = 2 THEN sum(nb)
END AS femme
FROM flux
GROUP BY commune_depart, commune_arrivee,sexe


Mais en résultat j'ai :




id_unique depart arrivee homme femme
1 Alfrome Alfrime 16
2 Alfrome Alfrime 32


Bien sur, ce que je voudrais, et vous l'aurez deviné c'est :




id_unique depart arrivee homme femme
1 Alfrome Alfrime 16 32


Est-ce que vous auriez une idée d'utilisation du GROUP BY avec un CASE ?


Par avance merci de votre aide.


Geo-x





0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor