Couverture vaccinale

Fermé
Toto - 2 nov. 2021 à 00:13
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 - 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
JOIN Régions
ON COVID19.Code_reg = Régions.Code_reg
JOIN Départements
ON COVID19.Code_dep = Départements.Code_dep
WHERE Région = 'Normandie' AND Dose2 != 'NA'
GROUP BY Département;

5 réponses

jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
Modifié le 2 nov. 2021 à 10:05
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 jointure 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 jointure)

0
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 jointure, je souhaite afficher les noms des départements, donc il faut en effet laisser cette jointure
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 nov. 2021 à 13:12
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 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
2 nov. 2021 à 13:20
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
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 mardi 2 novembre 2021 Statut Membre Dernière intervention 3 novembre 2021
Modifié le 2 nov. 2021 à 14:00
Voici la mise à jour du code :
SELECT (SUM(COVID19.Dose2)/2408523*100), Département
FROM COVID19
JOIN Régions
ON COVID19.Code_reg = Régions.Code_reg
JOIN 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 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > Totolito_21 Messages postés 13 Date d'inscription mardi 2 novembre 2021 Statut Membre Dernière intervention 3 novembre 2021
2 nov. 2021 à 14:08
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 14251 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 20 avril 2024 1 798
2 nov. 2021 à 14:12
Bonjour,

Juste en passant, 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 mardi 2 novembre 2021 Statut Membre Dernière intervention 3 novembre 2021 > brucine Messages postés 14251 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 20 avril 2024
Modifié le 2 nov. 2021 à 14:19
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 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
2 nov. 2021 à 16:24
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
JOIN 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
JOIN Régions
ON COVID19.Code_reg = Régions.Code_reg
JOIN 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 mardi 2 novembre 2021 Statut Membre Dernière intervention 3 novembre 2021
Modifié le 2 nov. 2021 à 13:52
Schéma conceptuel :
0