替代关系型数据库 MAX 聚合函数的思路
背景
《替代关系型数据库 MAX 聚合函数的思路》,在报表数据查询的场景中,有时候会需要在类似日志表中查询指定条件下的最新数据,一般的思路是先通过 select max(id) from table group by bus_key 查询到最新的数据,然后外部再包装一个查询语句。本文提供自关联查询的方式去提供另一种思路。
思路
针对从类似日志表中查询最新的一条数据,可以使用自关联查询的方式,直接把最新的数据查询出来,避免使用 max 函数。 本思路并不保证可以提升查询的执行效率。
相关 SQL
提供了两组查询语句,实现的是同样的业务逻辑,唯一的区别在于多了一个过滤条件,相当于多个不同的分组,具体实现可以看下属语句。
示例相当于有一张学生成绩的记录表,主键 ID 是递增的,分别记录学生的编号,所属学年,当前的成绩和录入时间。想要查询出来每个学生的最后一次成绩。 第二组 SQL 查询语句是多了所属学校的过滤,返回的是不同学校不同学生编号的最新一次成绩。
复制代码
复制代码
参考
版权声明: 本文为 InfoQ 作者【alexgaoyh】的原创文章。
原文链接:【http://xie.infoq.cn/article/ed2f3bc5604727e38c226623c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论