首页 > 数据库 >MySQL 过程式编程,把一些间隔为1天的区间拼接起来

MySQL 过程式编程,把一些间隔为1天的区间拼接起来

时间:2023-03-25 22:45:37浏览次数:52  
标签:task end 编程 days start 拼接 consec MySQL date

题目地址 https://www.hackerrank.com/challenges/sql-projects/problem?isFullScreen=true

/*
Enter your query here.
*/

-- order by consec_days asc,task_start_date asc
-- mysql progress oriented programming



WITH answer_dates AS (
    SELECT
        start_date,
        end_date,
        IF(start_date = @prev_date , @consec_days := @consec_days + 1, @consec_days := 1) AS consec_days,
        @prev_date := end_date,
        IF(@consec_days = 1, @task_start_date := start_date,@task_start_date := @task_start_date) as task_start_date
    FROM
        (SELECT @prev_date := NULL, @consec_days := 1, @task_start_date := NULL) vars,
        (SELECT start_date,end_date FROM Projects ORDER BY start_date) ordered_dates
)


select task_start_date, end_date as task_end_date
from
(
    select * ,
    row_number() over(partition by task_start_date order by consec_days desc ) as rn
    from answer_dates
)tmp1
where rn=1
order by consec_days asc,task_start_date asc

标签:task,end,编程,days,start,拼接,consec,MySQL,date
From: https://www.cnblogs.com/yhm138/p/17254318.html

相关文章

  • MySQL order by limit 分页数据重复或丢失问题说明
    mysql中当orderby与limit同时使用,数据可能出现重复或丢失问题使用了下面的方法发现也没什么问题Db::name('users')->where(['is_disabled'=>0])->field('id,nickn......
  • Curso:由GPT-4驱动的编程辅助神器
    随着人工智能技术的发展,越来越多的工具为程序员带来便利。Curso编辑器就是其中一款以GPT-4为基础的编程辅助工具,让程序员能够在编写代码的过程中获得智能提示和解决问题的......
  • 《做一个不背锅运维:浅谈Python的元编程》
    什么是元编程Python元编程是指在运行时对Python代码进行操作的技术,它可以动态地生成、修改和执行代码,从而实现一些高级的编程技巧。Python的元编程包括元类、装饰器、动态......
  • 面向对象编程
    目录python中的两大编程思想面向过程面向对象两种编程思想的分析面向对象的推导步骤1:定义学生和选课功能步骤2:信息字典步骤3:数据与功能的绑定类与对象面向对象编程类的语......
  • mysql公共字段填充
    在实体类的属性上打@TableField注解,并在写明何时自动填充。 按照框架要求编写元数据对象处理器,在此类中统一为公共字段赋值,此类需要实现MetaObjectHandler接口1/**......
  • mysql
    数据库简述StructureQueryLanguage(结构化查询语言)简称SQL登录数据库与用户操作cmd打开数据库 添加用户 删除用户 查看所有用户......
  • Centos8安装MySQL
    受苦于博客总是过于老旧,安装时总会出现版本包已经删除的情况而且步骤总是各式各样难以理解,无奈之下还是官网靠谱,于是这篇博客以官网方法为基准,方便以后安装的时候可以直接......
  • mysql数据库备份与恢复
    环境:CentOS7.9mysql-5.71.数据库准备,建表createdatabaseschool;CREATETABLEstudent(idINT(10)NOTNULLUNIQUEPRIMARYKEY,nameVARCHAR(20)NOTNULL,se......
  • mysql手动实现窗口函数的方法
    背景:窗口函数是一种强大的SQL函数,它允许在查询中对一组行进行计算,而不需要将它们分组或汇总。然而,如果使用的MySQL版本不支持窗口函数,我们仍然可以通过一些技巧手动实现它......
  • golang 实现的零依赖、高性能、并发 mysqldump 工具。
    mysqldumpgolang中实现的零依赖、高性能、并发mysqldump工具。项目地址:https://github.com/dengjiawen8955/mysqldump/blob/master/README-zh.md文章地址:https:/......