কম্পিউটার টিউটোরিয়াল

MySQL-এ ROLLUP মডিফায়ারের সাথে ORDER BY ক্লজ ব্যবহার করা যাবে কিনা?

MySQL-এ ROLLUP এবং ORDER BY পরস্পর এক্সক্লুসিভ (mutually exclusive), তাই একসাথে ব্যবহার করা ভালো প্র্যাকটিস নয়। তবুও যদি ব্যবহার করা হয়, তবে প্রধান ডিসঅডভান্টেজ হলো সামারি রোগুলো যেসব রো থেকে ক্যালকুলেট হয়েছে তাদের সাথে সর্ট হয়ে যাবে। সর্ট অর্ডার সামারি রোয়ের পজিশন নির্ণয় করবে।

উদাহরণ:

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr DESC;
+------+-------+
| sr   | PRICE |
+------+-------+
|    5 |   250 |
|    4 |   850 |
|    3 |  1005 |
|    2 |   630 |
|    1 |   502 |
| NULL |  3237 |
+------+-------+

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr ASC;
+------+-------+
| sr   | PRICE |
+------+-------+
| NULL |  3237 |
|    1 |   502 |
|    2 |   630 |
|    3 |  1005 |
|    4 |   850 |
|    5 |   250 |
+------+-------+

নিরীক্ষণ: DESC এ সামারি রো (NULL) শেষে, ASC এ প্রথমে। সাবকোয়েরি ব্যবহার করলে ROLLUP এবং ORDER BY আলাদা লেভেলে থাকে, তাই সম্ভব।

  1. MySQL-এ WHERE ক্লজে SUM() ফলাফল ব্যবহার না করে HAVING ব্যবহার করা

  2. MySQL WHERE ক্লজে পুরো এক্সপ্রেশন ব্যবহার করা

  3. MySQL-এ GROUP BY ও ORDER BY ব্যবহার করে যোগফল বের করে সর্ট করা

  4. MySQL-এ ORDER BY FIELD() এবং ID দিয়ে সেকেন্ডারি সর্টিং একসাথে করুন