Группировка по категориям - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть таблица с именем data, в которой есть столбец empid. Выберите категорию из производства

Empid
------
50011
50012
51011
52013
50014
55015
55016

В этих первых двух цифрах упоминается отдел. Например, 50 - это один отдел, 51 - это другой отдел, который я хочуразделите разделение идентификаторов в следующем формате, в Oracle SQL запрос

Dept0   Dept1.  Dept3.   dept4.  Dept5
50011.  51011   52013.   0.      55015
50012.   0.     0.       0.      55016 
50014.   0.     0.       0.          0

1 Ответ

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

В одном методе используется условное агрегирование с использованием row_number():

select max(case when empid like '50%' then empid else 0 end) as dept0,
       max(case when empid like '51%' then empid else 0 end) as dept1,
       max(case when empid like '53%' then empid else 0 end) as dept3,
       max(case when empid like '54%' then empid else 0 end) as dept4,
       max(case when empid like '55%' then empid else 0 end) as dept5
from (select t.*,
             row_number() over (partition by substr(empid, 1, 2) order by empid) as seqnum
      from t
     ) t
group by seqnum;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...