Sujet : Re: Transformer une BD .sqlite en .js avec python version 3.8
De : yves (at) *nospam* free.invalid (yves)
Groupes : fr.comp.lang.pythonDate : 09. May 2022, 10:43:04
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6278d418$0$18723$426a74cc@news.free.fr>
References : 1 2 3
User-Agent : Pan/0.144 (Time is the enemy; 28ab3ba git.gnome.org/pan2)
Le Mon, 09 May 2022 01:06:12 -0500, msamandine a écrit:
Merci pour cette solution. Par contre, je cherchais un bout de code qui
puisse générer ce genre de table automatiquement, sans que l'on précise
à chaque fois "article = 4", article = 3, etc. En effet, la BD que j'ai
mis en ligne n'est qu'un extrait. En réalité, j'ai plus de 900 entrées.
Est-il possible d'automatiser ce morceau de code ?
J'ai aussi essayé d'écrire du sql pur.
Je n'aurai pas été capable de trouver le code de Benoit, faute de connaître et de savoir utiliser le CASE.
Je suis arrivé à ça:
#+BEGIN_SRC sqlite :db ""
create table t(nb_art INTEGER,genre TEXT,Nb_Enfants INTEGER);
.import usenet1.csv t
.headers on
create view if not exists N1 as select Nb_Enfants,genre, count (nb_art) as n1 from t where nb_art = "1" group by Nb_Enfants, genre ;
create view if not exists N2 as select Nb_Enfants,genre, count (nb_art) as n2 from t where nb_art = "2" group by Nb_Enfants, genre ;
create view if not exists N3 as select Nb_Enfants,genre, count (nb_art) as n3 from t where nb_art = "3" group by Nb_Enfants, genre ;
create view if not exists N4 as select Nb_Enfants,genre, count (nb_art) as n4 from t where nb_art = "4" group by Nb_Enfants, genre ;
select Nb_Enfants,genre, n1,n2,n3,n4 from N1 natural join N2 natural join N3 natural join N4;
#+end_src
Code qui pose le même problème relatif au nombre d'articles codés "en dur".
Est-il possible d'automatiser ce morceau de code ?
Peut-être est ce possible en pur SQL, mais hors de mes compétences.
Par contre, avec Python, j'imagine bien vaguement une porte de sortie.
Commence par trouver la requête SQL qui donne l'ensemble des "nombres d'articles" possibles.
@+
-- Yves