SQL的一些小知识呀(7)

这两天的工作涉及了一些数据整理,所以来一波好久不见的sql记录。

多次更新取最新时间的数据

在一组数据中,uuid相同的记录有多条,每一条的update_time不同,想取每一个uuid最后一条更新记录。

select t1.uuid, t1.update_time
from record t1
         inner join (select t2.uuid, max(t2.update_time) as update_time
                     from record t2
                     group by t2.uuid) as t3
                    on t1.uuid = t3.uuid and t1.update_time = t3.update_time

取特定星期几的数据

用到的就是下面的语句,感谢internet。输出的星期一对应1,星期日对应0。

select extract(DOW FROM cast('2022-03-04 16:25' as TIMESTAMP)) weekday;

输出结果


nice day

对输出的特定字段增加条件

对于一些数据,如果当满足条件1输出一个结果,满足条件2输出另外的结果,可以利用case语句。

select uuid,
       case
           when count > 100 then 100
           else count end,
       update_time
from record
# count大于100,均输出100;否则输出本来记录的count

与特定时间间隔固定长度的数据

想要输出update_time是在publish_time三天后的数据。

select *
from record
where date_trunc('day', update_time) =
      date_trunc('day', t1.publish_time) + interval '3 day'
#加号后面是时间间隔,可进行灵活调整。

新的一个月开始啦~ 最近的变化也很多,感觉不踏实...但是就是还在努力上进找方向呀~

自我记录,有错误欢迎指正~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容