SQL的一些小知识呀(7)

2022-03-04  本文已影响0人  Rainbow想喝奶茶

这两天的工作涉及了一些数据整理,所以来一波好久不见的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'
#加号后面是时间间隔,可进行灵活调整。

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

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

上一篇 下一篇

猜你喜欢

热点阅读