De COMPTAGE dans SELECT SQL
J'ai une table de rapports qui incluent les champs Case
(numéro unique), ISR
(Individuels Rapport de Sécurité - numéro unique) et YearsOld
.
Il peut y avoir plus d'un ISR pour chaque Cas. Je veux compter le nombre de Cas uniques dans les groupes d'âge.
Ce SQL me donne un décompte du nombre de Rapports:
SELECT
COUNT(CASE WHEN `YearsOld` = -2) THEN 1 END) `No Report`,
COUNT(CASE WHEN `YearsOld` BETWEEN 0 AND 5) THEN 1 END) `0 to 5`
COUNT(CASE WHEN `YearsOld` BETWEEN 6 AND 12) THEN 1 END) `6 to 12`
FROM `Demographics`
est-il un moyen de modifier cela pour compter les différentes Cases
pour ces Groupes d'Âge?
Toujours une possibilité, mais que faire si un cas s'étend sur une personne à partir de 5-6 ans. Voulez-vous le comte à être dans la gamme que l'affaire a commencé, ou au cas où la personne est associée à via d'activité le plus récent.
Peut un
Oui. Un rapport de recherche internationale est une Personne de la Sécurité des Rapports sur les effets indésirables des médicaments. Il peut y avoir plus d'un ISR sur un incident spécifique (soumis par deux ou plus de deux journalistes), et il peut y avoir plus d'un ISR sur le même Cas pour les Événements Indésirables qui s'est passé pour lui à des dates différentes. Idéalement, Cas+DateOfEvent+Ans serait utilisé pour compter le nombre exact des Événements Indésirables survenus à une cause, à un Âge donné, mais la Date de l'Événement est souvent omis dans les rapports de Cas+Ans est aussi proche que je peux obtenir de comptage le Cas unique+AdverseEvents. Votre solution ci-dessous fonctionne très bien.
Peut un
Case
ont différentes YearsOld
âges différents ISR
?Oui. Un rapport de recherche internationale est une Personne de la Sécurité des Rapports sur les effets indésirables des médicaments. Il peut y avoir plus d'un ISR sur un incident spécifique (soumis par deux ou plus de deux journalistes), et il peut y avoir plus d'un ISR sur le même Cas pour les Événements Indésirables qui s'est passé pour lui à des dates différentes. Idéalement, Cas+DateOfEvent+Ans serait utilisé pour compter le nombre exact des Événements Indésirables survenus à une cause, à un Âge donné, mais la Date de l'Événement est souvent omis dans les rapports de Cas+Ans est aussi proche que je peux obtenir de comptage le Cas unique+AdverseEvents. Votre solution ci-dessous fonctionne très bien.
OriginalL'auteur Steve Helgeson | 2012-05-01
Vous devez vous connecter pour publier un commentaire.
Si votre "cas" de la variable est unique, vous pouvez certainement mettre le mot clé distinct dans le SQL CAS syntaxe directement:
De cette façon, chaque valeur unique de l'affaire variable est compté qu'une seule fois.
Juste une remarque sur la colonne de nommage, je suggère de ne pas utiliser un mot qui a un sens dans SQL si vous avez un choix (I. e. l'utilisation de 'case_num" au lieu de cas).
Case
est le nom du champ dans la table existante.OriginalL'auteur davesnitty
Vous pouvez utiliser une sous-requête pour filtrer vos données démographiques tableau pour un seul
YearsOld
champ par cas, mais si ce cas pourrait avoir été liée à la différence d'âges différentsISR
il va en fin de compte n'être compté dans un support (c'est peut-être ce que vous voulez?):Sinon, pour "compter" chaque "distinct "cas" à l'intérieur de chaque support, vous faire littéralement:
Case
+YearsOld
qui ce fait parfaitement.OriginalL'auteur eggyal