1. 程式人生 > 資料庫 >Mysql工作上遇到的小技巧

Mysql工作上遇到的小技巧

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;

將先要聚合查詢的查出來,然後作為表繼續查詢。