Sujet : Re: Transformer une BD .sqlite en .js avec python version 3.8
De : use.reply.to (at) *nospam* INVALID.ADDRESS (Benoit Izac)
Groupes : fr.comp.lang.pythonDate : 08. May 2022, 21:20:28
Autres entêtes
Message-ID : <871qx34yrn.fsf@izac.org>
References : 1
Bonjour,
Le 07/05/2022 à 06:25, msamandine a écrit dans le message
<
UNydnQ0sEcMoaej_nZ2dnUU7_83NnZ2d@giganews.com> :
Je suis débutante en python et je me suis lancée un petit projet,
à savoir afficher sur le web un graphique à partir d’une BD .sqlite.
Pour ce faire, voici le cheminement que je souhaite suivre :
transformer la BD .sqlite en .js pour ensuite pouvoir faire un
graphique en nuage de points qui sera affiché sur le web, ce qui
nécessitera un fichier .htm.
>
Voici un extrait de ma BD .sqlite :
>
Articles / Genre / Nb_Enfants
2 / M / 1
2 / M / 2
1 / F / 3
3 / M / 0
>
Et, voici la conversion (le résumé) que je souhaite obtenir :
>
Nb_Enfants / Genre / 1_article / 2_articles / 3_articles / 4_articles
0 / M / 23 / 14 / 15 / 18
0 / F / 42 / 12 / 12 / 15
1 / M / 12 / 8 / 5 / 5
1 / F / 32 / 23 / 12 / 3
>
Par exemple, 23 hommes n’ayant pas d’enfants ont publié un article ;
23 femmes ayant un enfant ont publié 2 articles ; etc.
>
Actuellement, je bute sur une chose à savoir résumer ma BD initiale.
Je pense qu’il doit exister une manière de coder assez succincte, mais
je n’arrive vraiment pas à trouver laquelle. Est-ce que qqn pourrait
m’aider svp ? Merci d’avance !
Je ne vois pas trop ce que vient faire python ici mais je ferais un truc
comme ça :
SELECT nb_enfants, genre,
SUM(CASE WHEN articles = 1 THEN nb END) '1_article',
SUM(CASE WHEN articles = 2 THEN nb END) '2_articles',
SUM(CASE WHEN articles = 3 THEN nb END) '3_articles',
SUM(CASE WHEN articles = 4 THEN nb END) '4_articles'
FROM (
SELECT nb_enfants, genre, articles, count(*) nb
FROM t
GROUP BY nb_enfants, genre, articles
)
GROUP BY nb_enfants, genre;
-- Benoit Izac