Couverture vaccinale

Toto -  
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   - 3 nov. 2021 à 14:27
Bonjour,
Je souhaiterais calculer la couverture vaccinal en Normandie par départements. Autrement dit, calculer en pourcentage le nombre de personnes vaccinés (Dose2). Ce calcul s'obtient en faisant :
nbr de vaccinés par départements / nbr population de la région * 100

Pouvez-vous m'aider

Voici mon code :
SELECT (SUM(COVID19.Dose2)/Régions.Population_reg*100), Département
FROM COVID19
 Régions
ON COVID19.Code_reg = Régions.Code_reg
 Départements
ON COVID19.Code_dep = Départements.Code_dep
WHERE Région = 'Normandie' AND Dose2 != 'NA'
GROUP BY Département;
A voir également:

5 réponses

jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Bonjour,

Et quel est le souci ?
Qu'obtiens tu avec ta requête ? En quoi ça ne serait pas conforme à ce que tu veux ?
Et puis... es tu bien sur du sqlserver ? Quelle version ?
Quelle est la structure de ta bdd ?


NB: Même si certains SGBD le permettent... il est préférable d'éviter tout caractères spécial ou accentué dans le nom des tables ou des champs.
Idem pour les langages de programmation... pour le nommage des variables.

NB²: Ta ture sur ta table Départements semble également inutile ici.
Tu peux faire ton group by directement sur COVID19.Code_dep ( à moins que tu ne veuilles le nom du département dans l'affichage... auquel cas tu peux en effet laisser cette ture)

0
Toto
 
Bonjour,
Merci de votre réponse.

Je suis sur le logiciel RStudio. Le langage SQL reste pour autant le même et les caractères spéciaux n'empêchent pas le fonctionnement des requêtes.

Ce que je souhaite obtenir, c'est le pourcentage des personnes vaccinés par départements pour la régions Normandie. Or la requête ci-dessus me donne des nombres complétements délirants.
Je ne vois donc pas du tout comment obtenir les bons résultats.

Pour la ture, je souhaite afficher les noms des départements, donc il faut en effet laisser cette ture
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Es-tu sûr que tu veux diviser par le champ Population_reg de la table région ?

Après, vu qu'on ne sait rien de la structure de tes tables ni de leur contenu il ne nous est pas possible de te donner plus d'informations
0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention    
bonjour,
as-tu essayé en ajoutant
Régions.Population_reg*100
dans le GROUP BY?

N'hésite pas à donner des faits, par exemple le résultat que tu obtiens et que tu juges délirant.
0
Toto
 
Bonjour,
Merci pour vos aides

J'ai trouvé mon erreur.
La sortie que l'on doit obtenir est (resultats en %) :
(SUM(COVID19.Dose2)/2408523*100) | Département
21.663609 | Calvados
16.089529 | Eure
15.858765 | Manche
8.719161 | Orne
37.668937 | Seine-Maritime

Je ne divisais pas par la bonne variable. En effet ce n'est pas divisé par "Régions.Population_reg" mais par la "population total de vaccinés en Normandie". Ainsi, la "population total de la région en Normandie" = 2408523.

Il ne me reste plus qu'a généraliser le "2408523", mais je ne sais pas comment faire.

Si ma réponse n'est pas très explicite, n'hésitez pas à me le faire savoir.
0
Totolito_21 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Voici la mise à jour du code :
SELECT (SUM(COVID19.Dose2)/2408523*100), Département
FROM COVID19
 Régions
ON COVID19.Code_reg = Régions.Code_reg
 Départements
ON COVID19.Code_dep = Départements.Code_dep
WHERE Région = 'Normandie' AND Dose2 != 'NA'
GROUP BY Département")
0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   1 582 > Totolito_21 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Le plus propre, je pense, c'est de créer une nouvelle requête qui donne, par région, le nombre total de vaccinés (ainsi que les trois champs de la table Régions).
Ensuite, utiliser, comme source de ta requête existante, cette nouvelle requête à la place de la table Régions.
0
brucine Messages postés 20412 Date d'inscription   Statut Membre Dernière intervention   3 208
 
Bonjour,

Juste en ant, la statistique n'a pas trop de sens puisque l'on ne devrait pas rapporter à la population totale mais à la population totale vaccinable (plus de 12 ans) et même, si l'on veut ergoter, à celle ne présentant pas une (réelle) contre-indication, grosso modo l'allergie vraie (elle est le plus souvent prétendue) et des schémas différents en présence notamment d'un déficit immunitaire sévère pathologique ou résultant d'un traitement.
0
Totolito_21 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > brucine Messages postés 20412 Date d'inscription   Statut Membre Dernière intervention  
 
Oui vous avez raison, mais dans les données fournies par DATA.gouv nous ne possédons pas le champ "age".
0
Totolito_21 > yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'ai trouvé la requête pour obtenir le 2 408 523, il s'obtient de la façon suivante :
  
SELECT SUM(Dose2) AS 'Nbr individus totalement vaccinés en Normandie'
FROM COVID19
 Régions
ON COVID19.Code_reg = Régions.Code_reg
WHERE Région = 'Normandie' AND Dose2 != 'NA'


Maintenant je souhaiterais remplacer le 2408523 de la requête suivante par celle du dessus.
SELECT (SUM(COVID19.Dose2)/2408523*100), Département
FROM COVID19
 Régions
ON COVID19.Code_reg = Régions.Code_reg
 Départements
ON COVID19.Code_dep = Départements.Code_dep
WHERE Région = 'Normandie' AND Dose2 != 'NA'
GROUP BY Département"


Est ce possible ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Totolito_21 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Schéma conceptuel :
0