如何解决用连续第二个最早的日期更新表列?
我想更新日期 1 列的内容,以反映每一行的第二大日期。该表有数千行和约 15 列,其中只有少数是日期。我过去使用最少的功能用每行中最旧的日期更新此列,但我不知道如何用第二个最旧的日期更新它(第 1 行和 04/2020 年 1 月 15 日/在这种情况下,第 2 行为 15/2020)。任何帮助将不胜感激。
ID | 日期 1 | 日期 2 | 日期 3 | 日期 4 |
---|---|---|---|---|
001 | 01/14/2020 | 01/15/2020 | 01/16/2020 | |
002 | 04/15/2020 | 03/20/2020 | 06/16/2020 |
解决方法
最简单的选择可能是取消旋转:
select t.*,d.date
from mytable t
cross join lateral (
select date
from (values (t.date2),(t.date3),(t.date4)) d(date)
order by d.date
limit 1 offset 1
) d
如果您想要一个 update
语句:
update mytable t
set date1 = (
select date
from (values (date2),(date3),(date4)) d(date)
order by d.date
limit 1 offset 1
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。