mysql技巧
在写业务时,时常会遇到这种问题
需要使用聚合函数算sum()
或者使用max()
但是,由于聚合函数需要将查询到的所有其他不是聚合函数的字段都要group by
那么问题来了,有时候业务如果全都group by
了会得不到想要的值。。
最近发现解决办法
可以使用嵌套查询
select
t1.repair_status as repairStatusName,
t2.code as deviceNumber,
t2.deviceType as deviceTypeCode
from dg_device_check t1,
(select u1.device_code as code,
u1.device_type as deviceType,
max(u1.create_time) as createTime
from dg_device_check u1
left join md_device u2 on u1.device_code = u2.code
where u2.section = #{miningAreaCode}
group by code,deviceType) t2
where t1.create_time = t2.createTime;
将先要聚合查询的查出来,然后作为表继续查询。