Partage
  • Partager sur Facebook
  • Partager sur Twitter

Demande requête avec restitution comptage à plat

group by amélioré ?

Sujet résolu
    14 avril 2022 à 15:41:40

    demande d'aide de création de requête

    Si j'ai les données suivantes en 3 colonnes : C1 C2 C3 ayant :
    A B e
    A B k
    A B k
    A C e
    A C e
    A C m

    Avec en colonne C3 3 valeurs possibles (e, k ou m)

    select C1, C2, C3, count(*) as C4 from table group by C1, C2, C3
    donne

    A B e 1
    A B k 2
    A C e 2
    A C m 1

    j'aimerai avoir un résultat sous cette forme

    C1 C2 nb(e) nb(k) nb(m)
    A  B  1      2     0
    A  C  2      0     1
        
    est-ce possible svp ?

    -
    Edité par JpAuriac 15 avril 2022 à 17:20:49

    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2022 à 14:57:14

      Bonjour,

      Je ne sais pas quel SGBD tu utilises, mais regarde du côté de PIVOT (tableau croisé).

      Sinon, ta requête est correcte, et il faut juste croiser les données lors de l'affichage pour faire ton tableau croisé.

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        15 avril 2022 à 17:13:32

        Ok merci Chef Romain, je m'en suis sorti avec PIVOT

        select * from ( ...)

        PIVOT

        (

        MAX(C4)

        FOR C3 IN ('e', 'k', 'm')

        )

        NB utiliser MAX ou MIN importe peu puisqu'il y a qu'une valeur (et qu'il faut obligatoirement utiliser une fonction d'agrégat)

        • Partager sur Facebook
        • Partager sur Twitter

        Demande requête avec restitution comptage à plat

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown