正如oracle doc所说它支持部分汇总:
部分汇总 您也可以汇总,以便只包含部分小计。此部分汇总使用以下语法:
GROUP BY expr1,ROLLUP(expr2,expr3);
在这种情况下,GROUP BY子句在(2 + 1 = 3)聚合级别创建小计。也就是说,在级别(expr1,expr2,expr3),(expr1,expr2)和(expr1)。
http://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8612
MySQL是否支持此功能?
我试图在MySQL文档中搜索并找不到任何线索。
答案 0 :(得分:1)
with rollup clause上的Mysql文档非常清楚:您无法为rollup子句提供列表,以指示您希望执行摘要的级别。
您可以做的是在子查询中使用rollup子句进行查询,在外部查询中可以删除那些不需要的聚合行(或者您可以在客户端应用程序中执行此操作)。你不能在having子句中这样做,因为
因为超级聚合行中的NULL值被放入 在查询处理这么晚的阶段设置结果,你不能 在查询本身中将它们作为NULL值进行测试。例如,你 无法将HAVING产品IS NULL添加到查询中以消除 输出除超级聚合行之外的所有行。
另一方面,NULL值在客户端上显示为NULL 可以使用任何MySQL客户端编程进行测试 接口