我有一个名为correctObjects的表。在这款平板电脑中,这里有许多不同数量记录的grup。下面给出一个例子,因为grup 544在表中有5行。首先,我应该按GRUP COLUMN对所有记录进行分组,然后我必须通过CAP COLUMN进行内部匹配。因此在grup#544中有三种不同的CAP值,那么我必须给这些记录赋予内组号。我该怎么做这两个级别的分组过程。 GRUP列已经完成。每个记录中的内部Grup列为空。
我正在使用Oracle 11g R2和PL / SQL Developer
答案 0 :(得分:2)
你的问题缺乏某些细节,所以我只是给你一个起点,你可以调整它以满足你的需要。
目前还不完全清楚,但按照我理解的方式,您希望按cap
排名不同的行。我认为排名对于每个不同的grup
值都是独立的。
我不清楚为什么125 mm
排名1
,62 mm
排名2
。它是基于价值吗?它是基于哪一行是第一行,如果是,行如何排序?或者你可能并不关心哪一个是第一个或第二个,只要它们被正确分组。我将不得不假设后者。
无论如何,听起来你想以某种形式使用dense_rank()
分析函数:
select mip, startmi, cap, grup,
dense_rank() over (partition by grup order by cap) as inner_grup
from tbl