Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Mysql 在一次查询中计数两次_Mysql_Sql - Fatal编程技术网

Mysql 在一次查询中计数两次

Mysql 在一次查询中计数两次,mysql,sql,Mysql,Sql,我做错了什么?试图输出两个计数,需要按部门分组 SELECT Department, COUNT(DISTINCT ID) AS total, SUM(CASE WHEN course LIKE 'AS%' THEN 1 ELSE 0 END) AS Total_AS FROM schedule GROUP BY Department ORDER BY Department ASC 唯一的问题是,对

我做错了什么?试图输出两个计数,需要按部门分组

SELECT Department, 
       COUNT(DISTINCT ID) AS total, 
       SUM(CASE WHEN course LIKE 'AS%' THEN 1 
                ELSE 0 
           END) AS Total_AS
FROM schedule 
GROUP BY Department 
ORDER BY Department ASC 
唯一的问题是,对于多个实例,
Total\u As
正在计算
Department
。如果
员工(ID)
至少参加了一次课程
为%
的培训,则只需计算一次。脚本当前正在将
员工(ID)
采取的每一项
计算为%
。需要
案例
部分仅对
员工(ID)
进行一次计数,以表明该员工至少参加了一次
培训,如果他们没有参加培训,则为0<代码>总和
不应多次计算员工人数。尝试使用
MAX
代替
SUM
,但结果仅给出每个
部门的1或0。正在尝试获取
部门、总员工以及
部门中至少有1个
课程(如“AS%”)的员工的输出

输出应为:

会计,部门共有20名员工,总计10名

使用当前的
SUM
,我得到的
Total\u的结果为40,因为
员工中有10人(ID)
每人上了4门课。只需将
Total\u作为
计数
至少参加1门课程的
员工的总数,在本例中为10。

将总和更改为计数(不同):


固定的标题,格式和改进的可读性。请确保在发布前格式化代码,并始终添加表定义、示例数据和预期输入。
SELECT Department,
   COUNT(DISTINCT ID) AS total, 
   COUNT(DISTINCT CASE WHEN course LIKE 'AS%' THEN id END) Total_AS 
FROM schedule 
GROUP BY Department 
ORDER BY Department ASC