在使用 ROLLUP 修飾符時,可以使用 MySQL ORDER BY 子句對結果進行排序嗎?


實際上,ROLLUP 和 ORDER BY 在 MySQL 中是互斥的,因此最好不要在查詢中同時使用它們。但如果我們仍將 ROLLUP 用於 ORDER BY,主要劣勢是彙總行連同它們計算出的行一同進行排序。還要注意,排序順序將決定彙總行的位置。

彙總行將位於升序的開頭和降序的結尾。檢視以下示例以更加清楚地理解它 −

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 |
+------+-------+
6 rows in set (0.00 sec)

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 |
+------+-------+
6 rows in set (0.01 sec)

更新於: 2020 年 6 月 22 日

339 次檢視

開啟你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.