“WITH ROLLUP” 是一个与 GROUP BY 子句一起使用的修饰符。主要的是,它使汇总输出包含表示更高级别汇总操作的额外行。示例在下面的示例中,WITH ROLLUP 修饰符给出了包含额外行中总价格值的汇总输出。mysql> Select Item, SUM(Price) AS Price from ratelist Group by item WITH ROLLUP; +------+-------+ | Item | Price | +------+-------+ | A | 502 | | B | 630 | | C | 1005 | | h | 850 | | T | 250 | | NULL | 3237 | +------+-------+ 6 rows in set (0.00 sec)
实际上,ROLLUP 和 ORDER BY 在 MySQL 中是互斥的,因此在查询中同时使用它们不是一个好习惯。但即使如此,如果我们在 ORDER BY 中使用 ROLLUP,那么主要缺点是汇总行将与它们计算的行一起排序。还需要注意的是,排序顺序将决定汇总行的位置。汇总行将在升序的开头和降序的结尾。请考虑以下示例以更清楚地了解它 -mysql> Select * from ... 阅读更多
在使用显式排序顺序(ASC 或 DESC)以及 GROUP BY 列表中的列名以及“WITH ROLLUP”修饰符的情况下,ROLLUP 添加的汇总行仍然出现在计算它们的行的后面,而不管排序顺序如何。众所周知,默认排序顺序是升序,因此在下面的示例中,如果我们不使用任何显式排序顺序,则输出将如下所示 -mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr with rollup; +-----+-------+ | sr | Price | +-----+-------+ | 1 | ... 阅读更多