当前位置: 首页 > 编程笔记 >

深度分析mysql GROUP BY 与 ORDER BY

松波
2023-03-14
本文向大家介绍深度分析mysql GROUP BY 与 ORDER BY,包括了深度分析mysql GROUP BY 与 ORDER BY的使用技巧和注意事项,需要的朋友参考一下

本文就和大家一起深入研究下mysql中group by与order by.下面是我模拟我的内容表

 

我现在需要取出每个分类中最新的内容

select * from test group by category_id order by `date`

结果如下

 

明显。这不是我想要的数据,原因是msyql已经的执行顺序是

引用

写的顺序:select ... from... where.... group by... having... order by..
执行顺序:from... where...group by... having.... select ... order by...

所以在order by拿到的结果里已经是分组的完的最后结果。
由from到where的结果如下的内容。

 

到group by时就得到了根据category_id分出来的多个小组

 
 
到了select的时候,只从上面的每个组里取第一条信息结果会如下

 

即使order by也只是从上面的结果里进行排序。并不是每个分类的最新信息。
回到我的目的上 --分类中最新的信息
根据上面的分析,group by到select时只取到分组里的第一条信息。有两个解决方法

1,where+group by(对小组进行排序)
2,从form返回的数据下手脚(即用子查询)
由where+group by的解决方法
对group by里的小组进行排序的函数我只查到group_concat()可以进行排序,但group_concat的作用是将小组里的字段里的值进行串联起来。

select group_concat(id order by `date` desc) from `test` group by category_id

 

再改进一下

select * from `test` where id in(select SUBSTRING_INDEX(group_concat(id order by `date` desc),',',1) from `test` group by category_id ) order by `date` desc

 
子查询解决方案

select * from (select * from `test` order by `date` desc) `temp`  group by category_id order by `date` desc

自己例子

SELECT * FROM (SELECT * FROM `ecm_copy_goods_change` ORDER BY `cid` DESC) `ecm_copy_goods_change` GROUP BY goods_id ORDER BY `cid` DESC

 类似资料:
  • 我有一个处理AND和OR表达式的antlr规则。看起来是这样的: 这将生成一个非常深的解析树。E、 g.如果你有 结果是这样的树: 这可能会变得非常深入和昂贵,所以我想添加一个优化。我想同时处理多个顺序AND表达式(类似于OR-s)。 所以我想这样做: 我认为这将为序列中的所有And-s生成一个节点。 然而,当我这样做的时候,antlr仍然选择生成递归树。我想那是因为规则是模棱两可的。有什么想法可

  • 深度优先搜索的一般运行时间如下。 dfs 中的循环都在 $$O(V)$$ 中运行,不计入dfsvisit 中发生的情况,因为它们对图中的每个顶点执行一次。 在dfsvisit 中,对当前顶点的邻接表中的每个边执行一次循环。 由于只有当顶点为白色时,dfsvisit 才被递归调用,所以循环对图中的每个边或 $$O(E)$$ 执行最多一次。 因此,深度优先搜索的总时间是 $$O(V + E)$$。

  • 👥面试题目 一个商场的客流量符合什么分布? 怎么判断数据是否符合这个分布?有哪些方法? 这个问题考察的是统计学中的数据分布识别以及假设检验的知识。在数据分析领域,理解数据的分布是非常重要的一步,因为它能够帮助我们更好地建模和预测。对于商场客流量这种场景,了解其分布可以帮助商场管理层优化资源配置、提高顾客满意度以及提升销售业绩。为了准确回答这个问题,我们需要从以下几个方面来考虑: 数据分布类型:识

  • 本文向大家介绍JS深度拷贝Object Array实例分析,包括了JS深度拷贝Object Array实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JS深度拷贝Object Array。分享给大家供大家参考,具体如下: 遇到的问题 typeof [] 结果为 object typeof {} 结果为 object [] instanceof Array 结果为 true {} i

  • 👥面试题目 如何来筛选活跃度前十的用户 思路解析 考察的知识点: - 活跃用户定义:理解活跃用户的定义及其在数据分析中的重要性。 - 指标选取:掌握选择合适的指标来衡量用户活跃度。 - 数据处理:了解如何处理数据以提取有用信息。 - 排名算法:掌握实现用户活跃度排名的算法。 性别留存率分析的具体应用场景 思路解析 考察的知识点: - 用户行为分析:理解性别留存率分析在用户行为分析中的应用。 -

  • 👥面试题目 一副扑克牌 54 张分成等额 6 份大小王在同一份牌里的概率? 本问题主要考察的是组合数学和概率理论的知识点,具体涉及: 组合数学:用于计算所有可能的分牌方式以及目标事件(大小王在同一份牌中)的出现次数。 概率理论:用来计算特定事件(大小王在同一份牌中)发生的可能性。 逻辑回归的原理,应用场景以及优缺点? 当我们探讨逻辑回归的原理、应用场景及优缺点时,我们实际上是在考察以下几个核心知

  • ECMAScript 6 简称 ES6,ES6 包含了很多新的语言功能,且这些语言功能使得 JavaScript 更加强大更富有表现力。下面我们将会一步步介绍 ES6 新增的那些功能。

  • 本文向大家介绍Python直接赋值、浅拷贝与深度拷贝实例分析,包括了Python直接赋值、浅拷贝与深度拷贝实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python直接赋值、浅拷贝与深度拷贝。分享给大家供大家参考,具体如下: 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 dee