SQL每日一题(2020-05-29)

2020-06-02  本文已影响0人  扎西的德勒

题目:

有如下一张表T image 希望每条记录每次增加30分钟,增加3次预计得到的结果如下: image

参考答案:

数据库版本:Server version: 8.0.20 MySQL Community Server - GPL

建表语句

create table dailytest_20200529
(
    id       int,
    end_time timestamp
);

数据准备

INSERT INTO demo.dailytest_20200529 (id, end_time) VALUES (1, '2017-05-26 16:00:00');
INSERT INTO demo.dailytest_20200529 (id, end_time) VALUES (2, '2017-05-26 17:30:00');

写入逻辑,执行三次

insert into dailytest_20200529
select
       id,
       end_time + interval '30' minute
from (select
             id,
             end_time,
             row_number() over (partition by id order by end_time desc) as rn
      from dailytest_20200529) AA
where AA.rn = 1;

附:
题目来源:https://mp.weixin.qq.com/s/Q3qKOF2POlXT7JjmAZhUFw
interval关键字用法:https://blog.csdn.net/arenzhj/article/details/16902141

上一篇 下一篇

猜你喜欢

热点阅读