【问题标题】:Issue with teradata to mysql query conversionteradata 到 mysql 查询转换的问题
【发布时间】:2020-10-23 01:21:54
【问题描述】:

Teradata 查询:-

   select  min(elapsed_sec) over (partition by job_name, parent_job_name order by elapsed_sec rows between 1 following and 1 following) - elapsed_sec as diff from xyz

Teradata 查询的输出:-

elapsed_sec row_count row_no diff
0.000       207        143  1.000
1.000       207        144  0.000
1.000       207        145  0.000
1.000       207        146  0.000
1.000       207        147  4,555.000
4,556.000   207        148  1,250.000
5,806.000   207        149  2,038.000
7,844.000   207        150  73.000

注意:- diff 是 current_row 和 next_row 之间的差异
例如。 第一行 1-0=1,第二行 1-1=0 我的 mysql5.6 不支持这个 特征。请帮助获得所需的结果

【问题讨论】:

    标签: mysql sql mysql-workbench teradata teradata-sql-assistant


    【解决方案1】:

    您的代码可以在最新版本的 MySQL 中运行。所以,我的第一个建议是更新到 MySQL 8+。

    在您这样做之前,一种方法是关联子查询:

    select ( (select min(elapsed_sec) 
              from xyz xyz2
              where xyz2.job_name = xyz.job_name and
                    xyz2.parent_job_name = xyz.parent_job_name and
                    xyz2.elapsed_sec > xyz.elapsed_sec
             ) - elapsed_sec) as diff
    from xyz;
    

    【讨论】:

      猜你喜欢
      • 2016-04-10
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多