जन्मतिथि को श्रेणी के नाम में बदलें, फिर उसके ऊपर गिनती के साथ एक समूह बनाएं:
select
case when age < 18 then 'Under 18'
when age > 50 then 'Over 50'
else '18-50' end as range,
count(*) as count
from (select DATEDIFF(yy, user_dob, GETDATE()) as age from Customer) c
group by case when age < 18 then 'Under 18'
when age > 50 then 'Over 50'
else '18-50' end
जन्मतिथि को एक सीमा में बदलने के लिए एक सबक्वेरी का उपयोग करके, गणना केवल प्रति पंक्ति एक बार की जानी चाहिए, इसलिए इसे बेहतर प्रदर्शन करना चाहिए। और इसे पढ़ना आसान है।
साथ ही, UNIONs से बचकर, क्वेरी को टेबल के ऊपर एक पास में निष्पादित किया जा सकता है।