DISTINCT COUNT in der SELECT CASE-SQL

Ich habe eine Tabelle berichten, dass auch die Felder Case (eindeutige Nummer), ISR (Individual Safety Report - eindeutige Nummer) und YearsOld.

Kann es mehr als eine ISR für jeden Fall. Ich möchte zum zählen der Anzahl von eindeutigen Fällen innerhalb von Altersgruppen.

Diese SQL gibt mir die Anzahl der ISRs:

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`

gibt es eine Möglichkeit, dies zu ändern, um count DISTINCT Cases für diese Altersgruppen?

  • Immer eine Möglichkeit, aber was ist, wenn ein Fall sich über eine person aus, die 5-6 Jahre alt. Wollen Sie die Zählung in dem Bereich liegen, der Fall begann, oder der Fall, in denen die person zugeordnet ist, über die die neueste Aktivität.
  • Kann ein Case haben unterschiedliche YearsOld Alter für verschiedene ISR?
  • Ja. Eine ISR ist eine Individuelle Sicherheits Bericht über eine "unerwünschte Arzneimittelwirkungen". Kann es mehr als eine ISR auf einen bestimmten Vorfall (verfasst von zwei oder mehr Reporter), und es kann mehr als eine ISR auf dem gleichen Falle für Unerwünschte Ereignisse, die passiert ist, um ihn/Sie zu verschiedenen Zeitpunkten. Idealerweise Case+DateOfEvent+YearsOld würde verwendet werden, um zu zählen, die genaue Anzahl der Unerwünschten Ereignisse, die passiert ist ein Fall in einem bestimmten Alter, sondern das Datum der Veranstaltung, ist oft weggelassen, aus den berichten, so Fall+YearsOld ist so nah wie ich bekommen kann, um das zählen der einzigartige Fall+AdverseEvents. Deine Lösung unten funktioniert Super.
Schreibe einen Kommentar