开发者社区> 问答> 正文

需要对一条分组查询SQL进行优化

以下为需要优化的一条分组查询SQL: select serialno, t.itemno,t.workdate, t.logcontent as lastProgress
from l_loginfo t
where (t.itemno, t.workdate) in
(select xx.itemno, max(xx.workdate) workdate
from l_loginfo l
group by l.itemno );

展开
收起
晓风瑟瑟 2021-10-12 13:35:11 862 0
3 条回答
写回答
取消 提交回答
  • 使用row_number() over 函数先分组编号再进行排序操作 select serialno,itemno,logcontent,workdate from ( select t.serialno,t.itemno,t.logcontent,t.workdate,row_number() over (partition by itemno order by t.workdate desc) ma
    from l_loginfo t) where ma = 1;

    2021-10-16 15:56:53
    赞同 展开评论 打赏
  • 使用join连接表查询

    2021-10-12 15:20:00
    赞同 展开评论 打赏
  • 要取每个itemno的最新一条记录。建议从业务层面解决,如redis冲存储itemno的最新一个记录,直接批量取出来就好了。

    2021-10-12 14:14:18
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载