mysql5.7以上的group by 内部排序

2023-05-16

需求:

https://zhuanlan.zhihu.com/p/414683659
与这个需求类似

找出每个分组下最近一条时间的记录,同时还要进行sum操作,但是group by 只会匹配每个分组下的第一条数据(如果id自增的话,就是每个分组下最小的id),
所以想到的子查询建个子表先排序再连起来,结果发现 5.7版本的mysql的优化器会优化order by到外部排序,5.6的版本似乎可行,
然后查了一些看到了解决方法是,加limit,但是我无法确定数据量的大小,加limit显然不可行,
因为mysql优化器特定情况下会合并派生表
而limit distinct group by等可以关闭这个特性,
所以可以在子表中加distinct id,关闭这个特效,因为id肯定不会重复,所以确保了子表数据的完整性,也不会耽误我之后的sum操作

官方文档如下,

https://dev.mysql.com/doc/refman/5.7/en/derived-table-optimization.html

sql如下,

SELECT
  y.id,
  account,
  sum(mark_end_time - mark_start_time) as work_time
from
   as y
  right join ( -- 右连接, 因为在子表里用where筛选
    SELECT
      -- 加distinc,消除mysql优化特性质
      distinct id
    FROM
      `batch_tasks_apply_detail`
    WHERE
      project_id = 'abc'
      AND (
        mark_end_time > 11111111
        and mark_end_time < 2222222      )
      AND status = 2
      AND apply_type = 1
    order BY
      updated_at desc
  ) as u on u.id = y.id
group by
  y.account
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql5.7以上的group by 内部排序 的相关文章

  • iOS使用socketIO实现长连接

    公司是做金融相关 xff0c 最近需要实现一个金融客户端必不可少的东西 xff1a K线图 这个东西如果是自己从头来搞 xff0c 可真的不是一件简单的事 xff0c 幸好 xff0c 在这个领域有很多的先驱 xff0c 已经在我们之前造好
  • Mac升级自带python到最新版本有轻功

    Mac电脑自带python xff0c 但是一般都是python的低版本 xff0c 如今越来越多的人转向了python3 xff0c 故而很有必要将其升级 xff0c 但是mac有些软件是依赖于自带python的 xff0c 所以不建议删
  • 2020-10-26关于虚拟机中的HWADDR和MACADDR地址

    https blog csdn net weixin 41374755 article details 106150956 utm medium 61 distribute pc aggpage search result none tas
  • JetBrains软件怎么设置中文?

    etbrains全家桶基本都是英文的 xff0c 有的朋友使用起来很不方便 xff0c 那么jetbrains全家桶怎么汉化呢 xff1f 现在来为大家带来JetBrains软件汉化教程 xff01 下面就以IntelliJ IDEA 20
  • SpringMVC常见面试题总结(超详细回答)

    1 什么是Spring MVC xff1f 简单介绍下你对springMVC的理解 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架 xff0c 通过把Model xff0c View xff0c
  • 微信聊天记录导出

    想把微信记录导出来 xff0c 并保存成txt或者csv格式的文件 xff0c 网上常用的方法是先把手机root xff0c 然后再获取微信聊天记录数据库 xff0c 然后再对数据库破解 有些android手机进行root xff0c 可能
  • iOS开发之NSMethodSignature(方法签名)

    OC中方法调用有三种 xff1a 第一种 xff1a 直接调用 span class token operator span span class token punctuation span span class token keywor
  • ios开发之离屏渲染

    前言 UIView和CALayer关系 UIView继承自UIResponder xff0c 可以处理系统传递过来的事件 xff0c 如 xff1a UIApplication UIViewController UIView xff0c 以
  • ios自定制Tabbar

    这是得物iOS开发一道面试题 xff0c 要求详细描述自定义Tabbar UITabBarController也可以轻松地管理多个控制器 轻松完成控制器之间的切换 xff0c UITabBarController的展现形式就是平时大家手机上
  • ios逆向开发

    对ios逆向开发感兴趣的小伙伴可以查看一下链接内容 xff1a ios逆向开发
  • iOS开发常用加密

    Https加密流程详见博主Https加密流程第十条 其他常用加密方式 一 Base64 Base64加密原理 xff1a 1 原本数据一个字符为8bit xff0c 每3个字符为一组 xff0c 即 xff1a 3 8 2 编码过程中 xf
  • iOS开发细碎知识点总结二

    struct和class的区别 我们先了解栈和堆的区别 1 栈的特点 分配空间小 但是存在栈上的数据访问效率高 2 堆的特点 分配空间相对较大 但是数据访问相对于栈 效率底下 swift中struct与的class的区别 1 class是引
  • iOS开发之相册

    需求一 xff1a 简单的选择一张图片 在iOS开发中如果要调用相机拍取照片或者是直接获取相册中的照片 xff0c 那么调用UIImagePickerController是个不错的选择 UIImagePickerController继承于U
  • 一个小白对微信小程序的理解

    一 小程序开发框架组成介绍 首先介绍一个小程序宿主环境差异 xff0c 其中iOS是基于JavaScriptCore xff0c Android是基于X5内核 xff0c IDE是基于nwjs 1 WXML xff08 WeiXin Mar
  • 池塘里有4只鸭子,4只鸭子在同半圆中的概率(C语言版)

    将原来你是小幸运大佬的Python版代码改写为C语言版代码 xff0c 作为新手练习 原文链接如下 xff1a 4只鸭子在同一个圆圈内游泳 xff0c 问 xff1a 4只鸭子出现在同一个半圆内的概率是多少 xff1f Python解答 原
  • VirtualBox上安装ArchLinux步骤整理

    粗体 xff08 一 xff09 系统安装 从archlinux官网下载linux镜像 xff1a archlinux 2016 12 01 dual iso在virtualbox中加载镜像启动 xff0c 进入root cd dev 下
  • 数据结构设计题大题总结(非代码)

    文章目录 二叉树二叉树遍历孩子兄弟表示法平衡二叉树旋转过程哈夫曼树的构造森林 树与二叉树互转 图邻接矩阵 邻接表与图图的深度搜索与广度搜索Prim算法与Kruskal算法最短路径与AOE网 xff08 Activity on edge ne
  • 轻松通关Flink第24讲:Flink 消费 Kafka 数据业务开发

    在上一课时中我们提过在实时计算的场景下 xff0c 绝大多数的数据源都是消息系统 xff0c 而 Kafka 从众多的消息中间件中脱颖而出 xff0c 主要是因为高吞吐 低延迟的特点 xff1b 同时也讲了 Flink 作为生产者像 Kaf
  • 痛苦的ubuntu 18.043

    文章目录 添加驱动源使用TAB键查看能安装的驱动版本号 刚开始就进不去桌面 xff0c 然后看了教程得在在quite splash 加 nomodeset才能关闭显卡进入桌面 进了系统之后还是跟着https blog csdn net ne
  • Tbox(Can转Tcp),支持有线连接和4G无线连接两种方式

    本司Tbox有如下优点 xff1a 1 支持Can工作模式的远程配置包括波特率 帧类型 过滤ID设置 xff1b 2 tcp支持以太网和无线两种方式 xff0c 无线支持多种网络制式 xff1b 3 采用cotex A7内核处理器 xff0

随机推荐