分组以后查询最新的一条数据 $sql = "SELECT i.operating_system, i.version_id, i.update_time,i.operating_system, i.version_id, i.version_name, i.sdk_info ...
当使用GROUP BY 分组,默认返回的数据是组中最小的记录即id最小的数据, 当开发中经常会需要分组后将最新的数据放在前面, 为了实现需求,使用了嵌套查询,分别使用order by来排序 但执行结果依然是id最小的那条数据 最终添上limit max size 后才生效 ...
2020-11-10 17:40 0 681 推荐指数:
分组以后查询最新的一条数据 $sql = "SELECT i.operating_system, i.version_id, i.update_time,i.operating_system, i.version_id, i.version_name, i.sdk_info ...
with MiPriceTopOne as (select classid,max(dataTime) dataTime,max(id) as id from MiPrice group by classid)select * from MiPrice where id in (select id ...
因为group by后取的一条数据默认是按主键id排序后的第一条,而且mysql查询语句是先执行group by再执行order by的。所以无法直接取 group by 后 创建时间最新的数据。 通过max()取最大id。 操作测试: 1、数据准备 CREATE TABLE ...
编辑 1 --建立测试环境 CREATE TABLE table1(a VARCHAR(10),b VARCHAR(10),c VARCHAR(10)); --插入数据 INSERT INTO table1 VALUES('2004','12 ...
准备数据 SQL语句 查询结果: ...
代码如下 ...
首先,将按条件查询并排序的结果查询出来。 然后,从中分组选出最新一条记录。 ...
在hibernate框架和mysql、oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据。 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条数据的sql都是使用row_number() over()函数来实现 例如: select ...