IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Affichage résultat de requête


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : septembre 2005
    Messages : 192
    Points : 118
    Points
    118
    Par défaut Affichage résultat de requête
    Bonjour,

    J'ai la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT EXTRACT(MONTH FROM date_insert) AS mois, COUNT(*) AS nb_article
    FROM article.article
    WHERE EXTRACT(YEAR FROM date_insert) = '2017'
    GROUP BY mois;
    Qui me donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     mois | nb_article 
    ------+------------
        1 |      12743
        2 |      75803
        3 |      48181
        4 |      13971
        5 |      16342
        6 |      18260
        7 |      11385
        8 |       9707
        9 |      25695
       10 |      12721
       11 |       7774
       12 |      11412
    Je cherche à obtenir en une requête ce genre de résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     mois |  2017 |  2018 |  2019
    ------+-------+-------+-------
        1 | 12743 | 12349 | 16121
        2 | 75803 | 14814 | 11072
        3 | 48181 | 96548 |  2868
        4 | 13971 | 15895 |
        5 | 16342 | 19288 |
        6 | 18260 | 26190 |
        8 |  9707 | 15229 |
        9 | 25695 |  4324 |
       10 | 12721 | 27459 |
       11 |  7774 | 15667 |
       12 | 11412 |  9736 |
    Je souhaite donc savoir si il est possible d'obtenir ce genre d'affichage en une seule requête.

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    8 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2008
    Messages : 8 240
    Points : 17 205
    Points
    17 205
    Par défaut
    Oui, on appelle cette opération un PIVOT.
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      select extract(month from date_insert)                                 as mois
           , count(case extract(year from date_insert) when 2017 then 1 end) as "2017"
           , count(case extract(year from date_insert) when 2018 then 1 end) as "2018"
           , count(case extract(year from date_insert) when 2019 then 1 end) as "2019"
        from article.article
       where date_insert >= date '2017-01-01'
         and date_insert <  date '2020-01-01'
    group by extract(month from date_insert);

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : septembre 2005
    Messages : 192
    Points : 118
    Points
    118
    Par défaut
    Ah oui pas mal, je n'aurai pas pensé à utiliser le "CASE" comme cela.
    Merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] affichage résultat de requête
    Par TooKool dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2008, 17h39
  2. [ORACLE8i] Affichage résultat de requêtes
    Par insupien dans le forum Oracle
    Réponses: 3
    Dernier message: 07/07/2006, 18h05
  3. Affichage résultat de requête dans un champ
    Par dj-julio dans le forum WinDev
    Réponses: 1
    Dernier message: 18/01/2006, 11h51
  4. [MySQL] Affichage de 2 lignes d'un résultat de requête
    Par JohanProg dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/10/2005, 16h42
  5. Réponses: 7
    Dernier message: 26/09/2005, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo