gpt4 book ai didi

mysql - 在一次查询中计数两次

转载 作者:行者123 更新时间:2023-11-29 06:26:11 25 4
gpt4 key购买 nike

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

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_As 正在计算多个实例的 Department。如果 employee(ID) 至少接受过一次类(class) AS% 的培训,则只需要计算一次。该脚本目前正在计算被 employee(ID) 占用的每个 AS%。需要 case 部分只对 employee(ID) 计数一次,以表明该员工至少参加过一次 AS% 培训,如果参加过则为 0没有参与。 SUM 不应多次对员工进行计数。尝试使用 MAX 代替 SUM,但结果只为每个 Department 提供 1 或 0。尝试获取 Department 中至少有 1 个 Course Like 'AS%'Department、Total Employees、# of Employees 的输出。

输出应该是:

Accounting, Total of 20 employees in Department, Total_AS 10.

使用当前的 SUM,我得到 Total_AS 的结果为 40,因为 Employees(ID) 中有 10 人每人选修了 4 门类(class)。只需要 Total_ASCOUNTEmployees 至少参加了 1 门类(class),在本例中为 10。

最佳答案

将 SUM 更改为 COUNT(DISTINCT):

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

关于mysql - 在一次查询中计数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com