繁体   English   中英

按类别分组

[英]Grouping by category

我有一个名为data的表,其中有一个名为empid的列从生产中选择类别

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

在此数据的前2位数字中提到了一个部门。示例50是一个部门51是另一个部门,我想按以下格式将id部门明智地拆分,在Oracle SQL查询中

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

一种方法通过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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM