繁体   English   中英

我们如何在 SQL 中实现 Informatica 中使用的 First() function?

[英]How can we implement First() function used in Informatica in SQL?

我在 Informatica 中有一个聚合转换,其中 Description1 列 = First(Description)。 我想在 SQL 查询中实现相同的功能。谁能建议如何做到这一点? 样本数据集表名-ABC

Name               Expression
ID                 ID
DESCRIPTION 
DESCRIPTION1       FIRST(DESCRIPTION1)
INSERT_DATE 
INSERT_DATE1       FIRST(INSERT_DATE)
RANK    
RANK1              FIRST(RANK)

请使用以下查询,

select max(Description1) from Router_Transform;

如果您在映射中使用排序器转换,请使用order by子句,

    select max(Description1) from Router_Transform order by column_name;

如果您想要具有最小id的行,那么您可以对结果集进行排序并仅保留一行。 在标准 SQL 中,您通常会为此使用行限制子句:

select t.*
from mytable
order by id
fetch first row only

请注意,所有数据库都支持这种语法(但几乎所有数据库都有替代方案)。

另一方面,如果您想向每行添加更多列以显示每列的“第一个”值,那么您将使用 window function first_value()

select
    t.*,
    first_value(description) over(order by id) description1,
    first_value(insert_date) over(order by id) insert_date1,
    first_value(rank)        over(order by id) rank1
from mytable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM