Как я могу создать возрастную группу из разных строк в оракуле - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть такая таблица

rateId  gender  Age
HV1     M       0
HV1     M      12
HV1     M      50
HV1     F      0
HV1     F      20
HV1     F      50

Я хочу создать возрастную полосу для всех rateId для каждого пола.Когда нет старшего возраста, это может быть 100. Поэтому мой результат должен быть:

rateId  gender  AgeLow  AgeHigh
HV1     M       0       12
HV1     M       12      50
HV1     M       50      100
HV1     F       0       20
HV1     F       20      50
HV1     F       50      100

Я думаю, что это может быть возможно с разделением или что-то в этом роде, но я не нахожукак это использовать.

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете попробовать использовать LEAD оконную функцию.

SELECT  t1.rateId, 
        t1.gender,  
        t1.Age AgeLow,
       LEAD(t1.Age,1,100) over(partition by t1.rateId,t1.gender order by t1.Age) AgeHigh
FROM T t1

SQL DEMO

...