मेरे पास रिपोर्ट की एक तालिका है जिसमें फ़ील्ड Case
(अद्वितीय संख्या), ISR
(व्यक्तिगत सुरक्षा रिपोर्ट - अद्वितीय संख्या) और YearsOld
शामिल हैं।चयन मामले में DISTINCT COUNT SQL
प्रत्येक मामले के लिए एक से अधिक आईएसआर हो सकते हैं। मैं उम्र समूहों के भीतर अद्वितीय मामलों की संख्या गिनना चाहता हूं।
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`
इस संशोधित करने के लिए इन आयु समूह DISTINCT Cases
गिनती करने के लिए एक तरीका है:
यह एसक्यूएल मुझे ISRs की संख्या की गिनती देता है?
हमेशा एक संभावना है, लेकिन क्या हुआ अगर एक मामला 5-6 साल से एक व्यक्ति को फैलाता है। क्या आप चाहते हैं कि गिनती उस सीमा में हो, जो मामला शुरू हुआ, या जिस मामले में व्यक्ति हाल ही की गतिविधि के माध्यम से जुड़ा हुआ है। – DRapp
क्या 'केस' के पास अलग-अलग 'आईएसआर' के लिए अलग-अलग 'वर्ष पुरानी' आयु हो सकती है? – eggyal
हां। एक आईएसआर एक प्रतिकूल दवा प्रतिक्रिया पर एक व्यक्तिगत सुरक्षा रिपोर्ट है। एक विशिष्ट घटना (दो या दो से अधिक संवाददाताओं द्वारा प्रस्तुत) पर एक से अधिक आईएसआर हो सकते हैं, और अलग-अलग तिथियों पर उनके साथ होने वाले प्रतिकूल घटनाओं के लिए एक ही मामले में एक से अधिक आईएसआर हो सकते हैं। आदर्श रूप से, केस + डेटऑफवेन्ट + साल का उपयोग किसी दिए गए आयु में किसी मामले में होने वाली प्रतिकूल घटनाओं की सटीक संख्या को गिनने के लिए किया जाएगा, लेकिन ईवेंट की तिथि अक्सर रिपोर्ट से छोड़ी जाती है, इसलिए केस + साल पुराना जितना करीब हो सकता है अद्वितीय केस + प्रतिकूल इवेंट्स की गिनती करने के लिए। आपका समाधान नीचे काम करता है। –