当前位置: 首页 > news >正文

单表查询-group by rollup优化

1、group by rollup基本用法

我们有时候在项目上看到group by rollup用法,其实就是对group by分组进行合计。
下面看一下例子
select count(1),c3 from t1 group by rollup(c3);
计划
在这里插入图片描述
从计划中解读亦是如此,另外可以从结果上进行分析
在这里插入图片描述
第21行的count其实就是前面20行的总和。

2、优化

计划中可以看到对表扫描两次,而从结果中可以明白是对group by总计,那我们其实可以改写成将前面20行进行sum
with temp as
(
select count(1) cnt,c3 from t1 group by c3
)
select * from temp
union all
select sum(cnt),null from temp;
在这里插入图片描述

这里将temp做成临时表,然后只扫描表t1一次,达到优化效果。

3、小结

这里主要利用的优化思维就是减少扫描次数。

http://www.xdnf.cn/news/1414891.html

相关文章:

  • 责任链模式实践-开放银行数据保护及合规
  • 一键获取电商平台商品原数据:item_get_app接口实操讲解
  • [Plecs基础知识系列]建立自定义模块/子系统(Subsystem)
  • 基于路测点云标注生成OpenDrive地图的全流程解析
  • 微服务01
  • Spring Cloud Alibaba Seata 分布式事务(六)
  • 索引性能分析
  • 【开题答辩全过程】以 基于SSM的拾光咖啡厅管理系统的设计与实现为例,包含答辩的问题和答案
  • Nano Banana:下一代AI图像创作与编辑指南
  • Linux网络编程04:网络基础(万字图文解析)
  • AFSIM仿真脚本生成(三)脚本解析技术加速验证过程
  • 有关指针的认知盲区:指针大小,决定因素,指针变量
  • EtherCAT主站IGH-- 44 -- IGH之slave_config.h/c文件解析
  • 目标检测算法YOLOv4详解
  • Langchain指南-关键特性:使用聊天模型调用工具
  • 用 MATLAB 实现遗传算法求解一元函数极值:从代码到实践
  • STL常见容器介绍
  • 从RNN到Transformer
  • @Transactional如何对分布式事务生效
  • Redis实现短信登录
  • 需要固定一个指针,再遍历另一个指针的都可以用双指针方法
  • 【系列11】端侧AI:构建与部署高效的本地化AI模型 第10章:LLM端侧部署
  • 二.Shell脚本编程
  • 在AlmaLinux或CentOS 8上编译安装ZLMediaKit流媒体服务器
  • CatBoost vs XGBoost:两大Boosting框架的全面对比
  • HTML5国庆网站源码
  • gdsfactory安装以及和klayout联调
  • 自学嵌入式第三十一天:Linux系统编程-进程间通信
  • 《程序员修炼之道》第七八九章读书笔记
  • Asible管理变量和事实和实施任务控制