如何在Azure Synapse数据流中筛选row_number=1的数据?
在Azure Synapse Dataflow中提取row_number = 1的数据操作方法
1. 确认Row Number的窗口配置
在**窗口转换(Window Transformation)**中完成正确配置:
- 分区键(Partition by):选择需要分组的字段(例如按用户ID分组,就指定用户ID字段)
- 排序规则(Order by):设置排序逻辑(例如按时间戳降序,确保取到分组内最新的一条数据)
- 窗口列表达式:输入
row_number() over (partition by [分区字段] order by [排序字段] [asc/desc]) as row_num
2. 添加筛选转换提取目标数据
在窗口转换的下游添加筛选转换(Filter Transformation):
- 在筛选条件中输入表达式:
row_num == 1 - 注意字段名需和窗口转换中定义的row_num完全一致,且数据类型为整数
常见问题排查
- 检查分区字段是否正确:若分区字段选择错误,会导致分组逻辑不符合预期,无法得到正确的row_number结果
- 确认排序方向:排序方向错误会导致取到的不是目标第一条数据
- 核对字段拼写:筛选条件中的字段名必须和窗口转换生成的字段名完全匹配
内容的提问来源于stack exchange,提问作者otaku
相关产品推荐
相关产品推荐

