Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!fdn.fr!news.ortolo.eu!news.izac.org!reader From: Benoit Izac Newsgroups: fr.comp.lang.python Subject: Re: Transformer une BD .sqlite en .js avec python version 3.8 Date: Sun, 08 May 2022 21:20:28 +0200 Message-ID: <871qx34yrn.fsf@izac.org> References: Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="922014"; mail-complaints-to="usenet@izac.org" Bytes: 2513 Lines: 52 Bonjour, Le 07/05/2022 à 06:25, msamandine a écrit dans le message  : > 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