我有一个像这样的源数据集(简化为更清楚):
Key F1 F2
1 X 4
2 X 5
3 Y 6
4 X 9
5 X 7
6 X 8
7 Y 9
8 X 6
9 X 5
10 Y 3
数据按 Key 字段排序。现在,我想计算 F1 字段定义的分区上的 F2 字段的聚合:一个分区从第一个 X 值开始,以第一个后续 Y 值结束。
因此,例如,我可能希望在上述定义的分区上计算 MIN()。然后结果集将如下所示:
rownum MIN(F2)
1 4
2 7
3 3
我尝试了许多资源(包括我们自己的 Intranet 社区,当然还有 stackoverflow),但没有找到适合我的案例。通常分区仅适用于可用于标识分区的字段。在这里,分区是通过字段内容相对于给定顺序的变化来定义的。
虽然我知道我可能不得不求助于编写程序解决方案,但我更愿意用纯 SQL 来解决这个问题。
任何想法如何使用 SQL 选择语句来实现这样的分区?
感谢和问候凯。