Deutsch   English   Français   Italiano  
<871qx34yrn.fsf@izac.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!fdn.fr!news.ortolo.eu!news.izac.org!reader
From: Benoit Izac <use.reply.to@INVALID.ADDRESS>
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: <UNydnQ0sEcMoaej_nZ2dnUU7_83NnZ2d@giganews.com>
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
<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