我在oracle数据库中有一个exp表。具有以下数据的员工:
身份证 | EMPID | 姓名 | 经理 |
---|---|---|---|
1 | EM1 | 安娜 | EM3 |
2 | EM2 | 约翰 | |
3 | EM3 | 拉维 | EM2 |
4 | EM4 | 达斯 | EM2 |
5 | EM5 | 迈克尔 | EM3 |
empid 是一个独特的列,经理列存储管理的 empid,所以现在我必须选择经理 id 和其下的员工数量,然后在一行中选择 empid,如
EMPID | 计数 | 电磁脉冲1 | 电磁脉冲2 |
---|---|---|---|
ME2 | 2 | EM3 | EM4 |
任何人都可以建议我如何在 oracle sql 中实现这个结果
试试这个:
select manager, count(empid) as count, listagg(name, ',' ) within group (order by name) as employees from employee group by manager order by manager;