【问题标题】:Teradata to mysql conversion - qualify and rankTeradata 到 mysql 的转换 - 资格和排名
【发布时间】:2018-10-06 21:13:57
【问题描述】:

我有一个 teradata 代码,如下所示:

select *
from date_dim a
left join 
(select incident_number,incident_type,submit_date from itamr qualify RANK() OVER (PARTITION BY incident_number ORDER BY last_modified_date DESC) = 1)b
on a.Clndr_Dt = b.submit_date
and b.incident_type = 'Request';

我需要将合格等级和分区转换为 mysql。 我尝试分组而不是分区。 有人可以帮我了解如何在 mysql 中转换资格和排名吗?

【问题讨论】:

  • Qualify 严格来说是 Teradata 的事情。 Rank() 在 Mysql 中应该可以正常工作,至少在现代版本上是这样。向我们展示您当前的 MySql 查询,让我们看看它发生了什么。

标签: mysql sql teradata


【解决方案1】:

QUALIFY 是一个 teradata 专有关键字。然而 RANK 函数将适用于任何关系数据库。您可以使用子查询替换 QUALIFY 语句,如下所示:

 select *
from date_dim a
left join 
(
select * from 
(select incident_number,incident_type,submit_date ,
RANK() OVER (PARTITION BY incident_number ORDER BY last_modified_date DESC) rn
from itamr ) sub where rn = 1 ) b
on a.Clndr_Dt = b.submit_date
and b.incident_type = 'Request';

【讨论】:

    猜你喜欢
    • 2020-09-21
    • 2020-10-23
    • 1970-01-01
    • 2021-04-30
    • 2020-12-17
    • 2016-11-19
    • 2015-12-19
    • 2019-06-26
    • 1970-01-01
    相关资源
    最近更新 更多