infomatica rank 组件问题

RafaelPaul 2015-09-24 09:57:56
RANK 组件分组排序,取TOP or bottom;
理论上讲当分组排序后RANK都为1的时候应该都会被取出来(假设我是需要RANK=1)的数据,
而且infomatica文档也是这么写的,但是事实上结果并非如此,我只是想和高手确认一下我的想法是对的,
举个例子来说明:
SOURCE :
select 1,201201,7
union all
select 2,201201,8
union all
select 2,201201,9
union all
select 3,201203,10
union all
select 4,201203,10

target table:
create table dbo.test_paul(
a int,
b int,
c int
);
需求:根据日期分组根据第一个字段排序取第一个字段最小值
我需要的通过组件实现的 结果是
a b c
2 201201 8
3 201203 10
2 201201 9

但是事实上结果是
a b c
2 201201 8
3 201203 10

因此证明infomatica 的组件只能返回分组排序后的第一条,用sql来讲相当于实现了rownumber() over (partition by order by)
的功能;而不是rank() over (partition by order by)

还是说我做错了呢?望infomatica高手指教


谢谢!





...全文
1728 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
弹指神通 2016-01-06
  • 打赏
  • 举报
回复
感觉子rank组件里面你勾了group by的字段之后,每个group id只能取得一行output,有点类似于写SQL的子查询。记得不太清楚了,rank组件感觉跟LKP组件类似吧 如果一个group id多余了一个output,估计RNK也是随机取了一条,因为你的排序字段不能取到唯一一条了。

246

社区成员

发帖
与我相关
我的任务
社区描述
讨论 Informatica 数据集成相关技术、数据隐私保护相关技术
社区管理员
  • 数据集成社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧