用子查询解决分组查询问题

时间:2021-12-10 15:07:29

业务需求:在A中需要根据gid字段分组,并只查询到每个分组中最新(时间createDate)的数据。

1.先说说分组查询的局限,group by查询时只能查聚合函数和被分组的列,那么想要的数据很可能查不到。

2.用子查询解决

select * from A a1 where a1.createDate = 
    (select MAX(a2.createDate) from A a2 where a2.gid = a1.gid)

如果写hql,和此句没什么区别。也适用于连接查询等。