多么好z 2022-06-15 10:47 采纳率: 25%
浏览 37

postgresql根据时间字段的大小来取数

请问一下,我现在在postgresql取数据,里面涉及到一个单号,对应多条数据,每条数据有时间,我想根据时间的先后来取数,比如有这几条记录:

2021 time1 txt1
2021 time2 txt2
2021 time4 txt4
2021 time3 txt3
我现在想取出
2021 time1 time4 txt1 txt4
其中time1是最早的时间,time4是最新的时间,请问想要达到这种效果,sql语法是该咋写呢?我在网上搜了没搜到合适的

问题相关代码,请勿粘贴截图
运行结果及报错内容
之前我是取出多条数据之后,用excel的透视来取最小最大时间的数据,但是现在需求又增加了几个表,也是那些表也是同样的一条单号对应多条数据,要根据时间来取数据,这样用excel就特别费时间了。所以想咨询一下各位,谢谢
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • shinger126 2022-06-15 11:35
    关注

    ;with t1 as (select *,row_number() over (partition by id order by time) rn from table),
    t2 as (select *,row_number() over (partition by id order by time desc) rn from table)
    select t1.id,t1.time as firsttime,t1.txt as firsttxt,t2.time as lasttime,t2.txt as lasttxt
    from t1 join t2 on t1.id=t2.id and t1.rn=t2.rn
    where t1.rn=1
    如果数据量比较大的话,最好是借助临时表来处理,分别获取最早记录和最晚记录写到2个临时表,再创建索引来关联

    评论

报告相同问题?

问题事件

  • 创建了问题 6月15日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵