【发布时间】:2012-08-01 17:00:35
【问题描述】:
我在表上有以下数据
ID_1 ID_2 序列组 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 开始 212648 175 12 之间 212648 500395 13 完 212648 1817 14 212648 500945 15 开始 212648 183 16 之间 212648 500543 17 之间 212648 181 18 之间 212648 500009 19 完 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23我想添加一个列,该列将为“START”和“END”之间的行应用组名。 例如:
ID_1 ID_2 SEQ 组 GROUP_SEQ 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 开始 1 212648 175 12 1 之间 212648 500395 13 结束 1 212648 1817 14 212648 500945 15 开始 2 212648 183 16 2之间 212648 500543 17 2 之间 212648 181 18 2之间 212648 500009 19 结束 2 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23我搜索了 Oracle 的分析函数(RANK()、FIRST、LAST() 等),但找不到解决方案。 提前感谢您的任何回复。
【问题讨论】:
-
如果我错了,请纠正我,但你不能规范化表格并避免这种情况吗?
-
SEQ 和 GROUP 列值是来自子选择的计算值。我减小了表格的大小以提出问题。你在考虑什么标准化?
-
第二范式表明所有非键列在功能上都依赖于整个主键。
标签: sql oracle aggregate-functions