Mysql工作上遇到的小技巧
阿新 • • 發佈:2020-11-19
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;
將先要聚合查詢的查出來,然後作為表繼續查詢。