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

อะไรจะเกิดขึ้นกับผลลัพธ์สรุปเมื่อฉันใช้การเรียงลำดับที่ชัดเจน (ASC หรือ DESC) กับชื่อคอลัมน์ในรายการ GROUP BY พร้อมกับตัวแก้ไข “WITH ROLLUP”


ในกรณีที่เราใช้การเรียงลำดับแบบโจ่งแจ้ง (ASC หรือ DESC) ที่มีชื่อคอลัมน์ในรายการ GROUP BY พร้อมกับตัวแก้ไข "WITH ROLLUP" แถวสรุปที่เพิ่มโดย ROLLUP จะยังคงอยู่ ปรากฏขึ้นหลังแถวที่คำนวณโดยไม่คำนึงถึงลำดับการจัดเรียง

อย่างที่เราทราบดีว่าลำดับการจัดเรียงเริ่มต้นคือจากน้อยไปมาก ดังนั้นในตัวอย่างด้านล่าง หากเราจะไม่ใช้ลำดับการจัดเรียงที่ชัดเจน ผลลัพธ์จะเป็นดังนี้ −

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)

สังเกตได้จากผลลัพธ์ว่าถึงแม้จะเรียงลำดับจากมากไปน้อย แถวสรุปก็ปรากฏขึ้นหลังแถวที่คำนวณออกมา