MySQL-এ ডেটাকে নির্দিষ্ট রেঞ্জ (যেমন ০-৯, ১০-১৯, ২০-২৯...) অনুযায়ী গ্রুপ করতে গাণিতিক অপারেশন ব্যবহার করা হয়।
উদাহরণ
টেবিল তৈরি:
mysql> CREATE TABLE GroupByRangeDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> YourRangeValue INT
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO GroupByRangeDemo(YourRangeValue) VALUES(1), (7), (9), (23), (33), (35), (1017);
সকল রেকর্ড:
mysql> SELECT * FROM GroupByRangeDemo;
+----+----------------+ | Id | YourRangeValue | +----+----------------+ | 1 | 1 | | 2 | 7 | | 3 | 9 | | 4 | 23 | | 5 | 33 | | 6 | 35 | | 7 | 1017 | +----+----------------+
রেঞ্জ অনুযায়ী গ্রুপ (০-৯, ১০-১৯, ২০-২৯, ৩০-৩৯, ৪০+):
mysql> SELECT ROUND(YourRangeValue / 10), COUNT(YourRangeValue)
-> FROM GroupByRangeDemo
-> WHERE YourRangeValue < 40
-> GROUP BY ROUND(YourRangeValue / 10)
-> UNION
-> SELECT '40+', COUNT(YourRangeValue)
-> FROM GroupByRangeDemo
-> WHERE YourRangeValue >= 40;
+----------------------------+-----------------------+ | round(YourRangeValue / 10) | count(YourRangeValue) | +----------------------------+-----------------------+ | 0 | 1 | | 1 | 2 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 40+ | 1 | +----------------------------+-----------------------+
ব্যাখ্যা: ROUND(YourRangeValue / 10) দিয়ে প্রতিটি মানকে ১০ দিয়ে ভাগ করে রাউন্ড করা হয়েছে। ১→০.১→০, ৭→০.৭→১, ৯→০.৯→১, ২৩→২.৩→২, ৩৩→৩.৩→৩, ৩৫→৩.৫→৪। ৪০ বা তার উপরের মানগুলো আলাদা কোয়েরি দিয়ে '40+' হিসেবে গ্রুপ করা হয়েছে। আরও জটিল রেঞ্জের জন্য CASE WHEN বা FLOOR() ব্যবহার করা যেতে পারে।