Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ผลกระทบของการใช้ Explicit Sort Order (ASC/DESC) กับ GROUP BY และ WITH ROLLUP ใน MySQL


ถ้าใช้ Explicit Sort Order (ASC หรือ DESC) ใน GROUP BY List พร้อม WITH ROLLUP แถวสรุปจาก ROLLUP จะยังคงอยู่หลังแถวที่คำนวณมา ไม่สนใจ Sort Order

Default (Ascending)

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
|   1 |   502 |
|   2 |   630 |
|   3 |  1005 |
|   4 |   850 |
|   5 |   250 |
|NULL |  3237 |
+-----+-------+
6 rows in set (0.00 sec)

ใช้ DESC

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr DESC with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
|   5 |   250 |
|   4 |   850 |
|   3 |  1005 |
|   2 |   630 |
|   1 |   502 |
|NULL |  3237 |
+-----+-------+
6 rows in set (0.00 sec)

สังเกต: แม้ GROUP BY sr DESC แถวสรุป (NULL, 3237) ยังอยู่ท้ายสุดเสมอ