SQL怎么写只想要更新日期的最新一条数据

同样的一张报表很多更新时间,怎么写只要留下最新时间的数据

image.png

SELECT 

catalog_id 

,catalog_name 

,catalog_full_name 

,catalog_type 

,catalog_type_name 

,report_route 

,author_id 

,author_name 

,browse_id 

,f60day_uv

,f60day_pv 

,create_time 

,report_route

,sdt 

FROM fanruan.fanruan_report_blood_df

where catalog_type='report_type#6'

order by f60day_uv desc,create_time desc 

limit 1000

FineReport lanst 发布于 2023-11-23 15:38
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-11-23 15:46(编辑于 2023-11-23 15:47)

再写一个子查询关联一下,就是你关联的字段要取到你能够判断数据是一类的那个字段比如多条件或者一个条件的字段都可以。看你业务上的需求了

select a.*,b.create_time from 表名称 a

left join (select author_id ,max(create_time) as create_time from 表名称 group by author_id ) b

on a.author_id=b.author_id

最佳回答
0
可遇不可求Lv5初级互助
发布于2023-11-23 15:56(编辑于 2023-11-23 15:59)

可以使用窗口函数,选择排名为1 :

rank() over (partition by <用于分组的列名>  order by <用于排序的列名>) 参考链接:https://www.zhihu.com/tardis/bd/art/92654574?source_id=1001

  • 3关注人数
  • 220浏览人数
  • 最后回答于:2023-11-23 15:59
    请选择关闭问题的原因
    确定 取消
    返回顶部