Mysql多条件取最新的数据
场景1:
根据单位id、模板id去表中查询每天最新的计算数据
每天可能会计算多次,产生多条单位和模板的数据,现在需要根据这两个条件查询最新的计算数据
方案:
SELECT t.* FROM ( SELECT * FROM risk_assess_record where unit_id in(320100DW1542002175817809920,140500DW1541979241619390464,320100DW1543784168285011968,AHHF_QHHFY_20180408,320100DW1542755101473505280,340100DW1600679890556813312,340100DW1600681790182260736,340100DW1600681792342327296,340100DW1598601812196196352,340100DW1610250470494830592,120100DW1582629102815281152,340100DW1636255299604054016,150500DW1541979713814134784,340100DW1569586853873451008,340100DW1638502471275905024,340100DW1600681790807212032,nullDW1572515570312544256,320100DW1541978407196164096,340100DW1543129987429695488,340100DW1600680183898046464,320100DW1546457000315977728,340100DW1598582537049866240,320100DW1567680421070635008,340100DW1600681793101496320,320100DW1543877636873256960,340100DW1600680029539270656,120100DW1567781124539678720,320100DW1567688890943275008,120100FWDX1536276502776119296,340100DW1566674602342481920,340100DW1600681791465717760,110100DW1587983886137163776,340100DW1600681791889342464,340100DW1578663582806048768,340100DW1566675325285302272) and temp_id in(M00059,M00060,M00061) ORDER BY create_time DESC LIMIT 2000 ) t GROUP BY t.unit_id
场景2:
根据多条件查询每天最新的数据,每天数据可能计算两次取最新的
方案:
select * from risk_assess_record d2 where (d2.unit_id,d2.create_time) in ( select d1.unit_id,max(d1.create_time) from risk_assess_record d1 where unit_id in(320100DW1542002175817809920,140500DW1541979241619390464,320100DW1543784168285011968,AHHF_QHHFY_20180408,320100DW1542755101473505280,340100DW1600679890556813312,340100DW1600681790182260736,340100DW1600681792342327296,340100DW1598601812196196352,340100DW1610250470494830592,120100DW1582629102815281152,340100DW1636255299604054016,150500DW1541979713814134784,340100DW1569586853873451008,340100DW1638502471275905024,340100DW1600681790807212032,nullDW1572515570312544256,320100DW1541978407196164096,340100DW1543129987429695488,340100DW1600680183898046464,320100DW1546457000315977728,340100DW1598582537049866240,320100DW1567680421070635008,340100DW1600681793101496320,320100DW1543877636873256960,340100DW1600680029539270656,120100DW1567781124539678720,320100DW1567688890943275008,120100FWDX1536276502776119296,340100DW1566674602342481920,340100DW1600681791465717760,110100DW1587983886137163776,340100DW1600681791889342464,340100DW1578663582806048768,340100DW1566675325285302272) and temp_id in(M00059,M00060,M00061) group by d1.unit_id,DATE_FORMAT(d1.create_time,%Y-%M-%D) )
下一篇:
Linux防火墙查看及白名单添加