首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql分组和排序同时使用时查询数据异常

问题背景: 每个地点每天新增一条数据,要根据地点分组查询出每个设备最新的数据(按创建时间倒序)。...FROM record GROUP BY Addr_Id ORDER BY Create_Time DESC; 这样查询会发现查询出来的数据并不是最新的,没有得到我们需要的结果,这是因为group by 和...order by 一起使用时,会先使用group by 分组,并取出分组后的第一条数据,所以后面的order by 排序时根据取出来的第一条数据来排序的,但是第一条数据不一定是分组里面的最新的数据。...解决方案: 方案一: 使用子查询,先排序查出结果后作为临时表在分组。这里有个坑,必须要加limit,如果没有加,有些版本的数据库也无法查处正确数据。...:= '', @num := 0) t ORDER BY a.Create_Time DESC ) x WHERE RANK = 1; 方案三: 使用Max()函数,根据地址分组查出每个地址最新数据的时间

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL进阶学习之SQL优化【插入,主键,排序,分组,分页,计数】

    1、主键顺序插入效果 从磁盘中申请页,主键顺序插入,当第一页数据写满之后,再写入第二个页,页和页之间通过指针连接,第二页写满之后,再往第三页写入,以此类推。...2、主键乱序插入效果 第一页和第二页都写满了数据。  此时再插入id为50的记录的话,因为索引的叶子节点是有顺序的。按照顺序,应该存储再47之后,所以不会写入到新的页中。  但是!...两个字段同时分组,则不会出现 Using temporary。...原因是因为对于分组操作,在联合索引中,也是符合最左前缀法则的。 所以,在分组操作中,我们需要通过以下两点进行优化,以提升性能: 在分组操作时,可以通过索引来提高效率。...InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。

    2.2K30

    组和分组卷积

    从我们原来的正方形开始 原始图像(正向的F)在左下角,下图显示了使用 和 以不同的方式组合生成的多种变换。 和 由不同颜色的箭头表示。 箭头是蓝色和 箭头是红色的。...有时我们通过加法和写两个元素 和 来作为 的类比来讨论它,而其他时候我们做类似的乘法,写作 。 “加”或“相乘”两组元素实际上与矢量相加非常相似。...我们决定图上的一个点是我们的标识元素(原始位置),并找到我们想要增加的两个元素,一个a和b。我们选择从标识到 和 的一个路径。...在数学中,人们经常像这样平衡普遍性和特异性。 数学家研究弱小和强壮的小组。但是,不知何故,团体是特别的。他们不是太热,他们不太冷,他们是对的。 这看起来有些武断。...致谢 我很感谢Yomna Nasser,Harry de Valence,Sam Eisenstat和Sebastian Zany花时间阅读和评论这篇文章的草稿 - 他们的反馈改进了很多!

    1.5K100

    闭包和计数器

    假如我们想制作一个计数器,每点击一次就加一,代码如下: var counter = 0; //把计数器counter设置成全局变量 function add(){ return counter+=1;...} add(); //1 add(); //2 add(); //此时counter=3 >>固然可以实现功能,但问题就在于其他语句也有可能会改动到counter,这样的计数器是不安全的。...counter为1 add(); //counter为1 add(); //counter为1 >>固然保证了counter不会被其他语句影响到,但问题就在于每次调用函数都会重置counter,无法实现计数功能...闭包函数常见的一种用途就是上面例子中的—–实现计数功能。 2、实现封装: 自由变量只能被闭包函数本身或者其子函数访问,而不能被闭包函数之外的函数访问。这就实现了面向对象的封装性,更安全更可靠。

    1.1K10
    领券