Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取在女性经理手下工作的员工总数-sqlite_Sqlite_Rdbms - Fatal编程技术网

获取在女性经理手下工作的员工总数-sqlite

获取在女性经理手下工作的员工总数-sqlite,sqlite,rdbms,Sqlite,Rdbms,我有一个条件,在那里我应该让所有的员工都在女性经理之下。所以我写了这个查询 select count(E.emp_id) as EmployeeCount, M.name, M.gender from employee E Join employee M on M.emp_id = E.manager_id where M.gender ='Female' group by M.name, M.gender 以上查询返回 4 Camila Wolstenholme Female

我有一个条件,在那里我应该让所有的员工都在女性经理之下。所以我写了这个查询

select count(E.emp_id) as EmployeeCount, M.name, M.gender   
from employee E Join employee M on M.emp_id = E.manager_id 
where M.gender ='Female' group by M.name, M.gender  
以上查询返回

4   Camila Wolstenholme Female
7   Clemmy Lamberts Female
9   Janot Saxon Female
3   Tina Fain   Female  

但我想要的是在每个女性经理手下工作的员工以及在所有女性经理手下工作的员工总数,即4+7+9+3=23。我想要23与在每个女性经理手下工作的员工一起显示。我如何才能做到这一点

我相信以下几点可以满足您的要求:-

SELECT
  (SELECT count() FROM employee ee JOIN employee  mm ON mm.emp_id = ee.manager_id WHERE m.gender = 'Female' ) AS Total ,
    count(E.emp_id) as EmployeeCount, M.name, M.gender,
    group_concat(e.name) 
FROM employee AS E  
JOIN employee M on M.emp_id = E.manager_id 
WHERE M.gender ='Female' group by M.name, M.gender
示例/演示 结果

  • NULL用于在没有指示管理者的区别的情况下指示管理者
附加的 但是,显示每列的总计可能会令人困惑,是否可以将其显示为一行

以下内容将显示为包含所有其他值的单行。也就是说,不提取total列,而是通过一个并集添加一行,第一列中的total和其他列被消隐

SELECT
  /* (SELECT count() FROM employee ee JOIN employee  mm ON mm.emp_id = ee.manager_id WHERE m.gender = 'Female' ) null AS Total ,*/
    count(E.emp_id) as EmployeeCount, M.name, M.gender,
    group_concat(e.name) AS Manages
FROM employee AS E  
JOIN employee M on M.emp_id = E.manager_id 
WHERE M.gender ='Female' group by M.name, M.gender 
UNION SELECT (SELECT count() FROM employee ee JOIN employee  mm ON mm.emp_id = ee.manager_id WHERE mm.gender = 'Female'),'','',''
;
结果

因此,请提供一个定制的玩具数据库,其形状为几行
create table…
insert…
。也为提供的玩具数据库提供所需的结果。这是好的。。。然而,显示每列的总计可能会令人困惑,是否可以将其显示为一行?@AjayKulkarni答案已被修改。
SELECT
  /* (SELECT count() FROM employee ee JOIN employee  mm ON mm.emp_id = ee.manager_id WHERE m.gender = 'Female' ) null AS Total ,*/
    count(E.emp_id) as EmployeeCount, M.name, M.gender,
    group_concat(e.name) AS Manages
FROM employee AS E  
JOIN employee M on M.emp_id = E.manager_id 
WHERE M.gender ='Female' group by M.name, M.gender 
UNION SELECT (SELECT count() FROM employee ee JOIN employee  mm ON mm.emp_id = ee.manager_id WHERE mm.gender = 'Female'),'','',''
;