2015-01-02 160 views
1

選擇一系列號碼和他們組我有一個叫下面的格式Numbers表格:在甲骨文

Number Extension 
123  1 
123  24 
123  6 
123  10 
123  11 
123  25 
123  2 
123  3 
123  13 

我需要一個結果集是這樣的:

Number Begin End 
123  1  3 
123  6  6 
123  10 13 
123  24 25 

有幾個數字每個號碼都有隨機順序的擴展名。我需要將它們分組在每個數字的範圍內,以便這些擴展名存在。

讓我知道任何問題/澄清。

+0

發生了什麼事'2'的結果,以及如何'6'是在兩個'Begin'和'End' –

+0

1,2,3是連續的,所以我們需要將它們分組爲一個範圍。所以,我們有1作爲存在,3作爲結束。在6之前或之後沒有數字,所以我們有6作爲結束,6作爲結束 – user1455116

+0

明白了..請添加此解釋。 –

回答

2

你可以通過從每個分機中減去一個連續的號碼來做到這一點。對於順序擴展,這將是一個常量。然後,您可以通過這種差異組:

select number, min(extension), max(extension) 
from (select n.*, (extension - row_number() over (partition by number order by extension)) as grp 
     from numbers n 
    ) n 
group by number, grp 
order by number, min(extension);