当我在 GROUP BY 列表中使用列名以及“WITH ROLLUP”修饰符的同时,使用显式排序顺序(ASC 或 DESC)时,对汇总输出有什么影响?


在这种情况下,当我们使用显式排序顺序(ASC 或 DESC)以及“WITH ROLLUP”修饰符在 GROUP BY 列表中使用列名时,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)

可以从输出中观察到,尽管排序顺序更改为降序,但汇总行仍出现在计算它们的行的后面。

更新于: 2020年6月22日

107 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告