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

PHP & Base de données Discussion :

Tranformer des colonnes excel en format JSON [PostgreSQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut Tranformer des colonnes excel en format JSON
    Hello,

    J'ai récupéré une table excel des élections présidentielles. Chaque commune représente 12 lignes, comme les 12 candidats présents. C'est évidemment inexploitable tq sous cette forme et j'aimerais que chaque colonne puisse devenir un élément d'une colonne jsonb avec son nb de voix.

    Exemple avec 3 candidats :

    Philippe Poutou : 15
    Anne Hidalgo : 78
    Jean-Luc-Mélenchon : 180

    Actuellement cela représente 3 lignes d'un tableur Excel.

    Je veux que ces données soient dans une seule colonne comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
    "Philippe Poutou" : 15,
    "Anne Hidalgo" : 78,
    "Jean-Luc Mélenchon" : 180
    }
    Il s'agit ici de spécifier des noms de colonne, je vais pas me taper l'écriture de la colonne à la main pour chaque commune. Il s'agit donc de générer cette colonne de manière dynamique.

    Je vous remercie pour vos retours.

    Sylvain

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    Pour ceux que ça pourrait intéresser, voici la réponse :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dep_code||commune_code as insee, ('{'||string_agg('"'||cand_nom||'":"'||cand_nb_voix||'"', ',')||'}')::json from public.res_pres_2022
    GROUP BY dep_code, commune_code

    et qui redescend un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    01301 | {"ARTHAUD":"12","ROUSSEL":"28","MACRON":"258","LASSALLE":"47","LE PEN":"409","ZEMMOUR":"105","MÉLENCHON":"209","HIDALGO":"27","JADOT":"48","PÉCRESSE":"51","POUTOU":"2","DUPONT-AIGNAN":"24"}
    Evidemment, le truc du bas dépend de vos données.....
    Pour commenter brièvement la requête : j'ai demandé à afficher le code Insee de la commune dans une première colonne, et dans une seconde ce qu'il y a dessus.

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

Discussions similaires

  1. [PEAR] Bloquer des colonnes excel
    Par nicoaix dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/05/2010, 16h08
  2. tranformer des colonnes en lignes
    Par panpan75 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/07/2008, 11h10
  3. Trier des colonnes EXCEL
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/02/2008, 09h26
  4. Formater des cellules excel en format nombre
    Par _developpeur_ dans le forum Access
    Réponses: 7
    Dernier message: 09/01/2006, 14h13
  5. [Spreadsheet-WriteExcel] Largeur des colonnes Excel
    Par Longrais dans le forum Modules
    Réponses: 2
    Dernier message: 17/10/2005, 16h41

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