使用with rollup后如何对数据进行排序

使用with rollup后如何对数据进行排序

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小蓝 2022-07-26 15:13:28

同学你好,可以在sql语句的末尾加上order by子句,例如下面的两条sql:

select deptno ,count(*),avg(sal),max(sal),min(sal)  
from t_emp
group by deptno with rollup
order by deptno desc;
select deptno ,count(*),avg(sal),max(sal),min(sal)  
from t_emp
group by deptno with rollup
order by deptno asc;

但是这样会存在一个问题:被with rollup汇总的信息也会被当做数据被排序,会破坏with rollup的显示效果,所以不建议with rollup和排序一起使用。

祝学习愉快~

  • 提问者 时间也许一一 #1

    这个只有mysql8后支持with rollup和order by共同使用我的5.7不支持有没有适用8之前版本的方法?

    2022-07-26 17:15:19
  • 同学你好,老师这里都已经是在使用8.0版本了,只能给同学提一些思路和建议。

    同学可以尝试一下使用子查询的方式:先使用with rollup进行查询,然后将查询的结果集当做表,再进行一次查询,查询时使用order by进行排序。

    如果上述方式不行,那么可能就没有使用sql的方式实现了。另外,既然8.0版本开始支持这样的语法了,说明MySql也考虑到可能会有这样的使用场景而进行了升级优化,建议同学使用更好版本的数据库。

    祝学习愉快~

    2022-07-26 17:31:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师