Select 一系列数字并在 Oracle 中将它们分组
Select a range of number and group them in Oracle
我有一个名为 Numbers 的 table,格式如下:
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
有几个号码,每个号码都有这些分机号,顺序随机。我需要将它们分组到每个号码的范围内,以便这些扩展名存在。
让我知道任何 questions/clarifications。
您可以通过从每个分机号中减去一个连续的号码来实现。对于顺序扩展,这将是一个常量。然后,您可以按此差异分组:
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);
我有一个名为 Numbers 的 table,格式如下:
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
有几个号码,每个号码都有这些分机号,顺序随机。我需要将它们分组到每个号码的范围内,以便这些扩展名存在。
让我知道任何 questions/clarifications。
您可以通过从每个分机号中减去一个连续的号码来实现。对于顺序扩展,这将是一个常量。然后,您可以按此差异分组:
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);