如何统计sql中特定职位卡的空缺职位数和已关闭职位数?
How to count number of open jobs and closed jobs of specific job card in sql?
要求统计申请中“技术员”的“open job”和“closed job”的数量
如果字段“status”为“pending”或“work started”,则作业已打开,否则作业状态为已关闭
我使用 SQL 脚本来计算空缺职位和已关闭职位的数量,我的问题是我无法计算特定技术人员 _id。
这是我的 SQL 计算空缺职位的脚本:
select count(*)
from jobcard
left join "user" on "user"."_id_" = jobcard.technicians_fk
where jobcard.status = "Pending"
但问题出在我只想计算特定用户 ID
我会在这里使用条件聚合:
SELECT
u."_id_",
COUNT(*) FILTER (WHERE jc.status IN ('pending', 'word started')) AS open_cnt,
COUNT(*) FILTER (WHERE jc.status NOT IN ('pending', 'word started')) AS closed_cnt
FROM "user" u
LEFT JOIN jobcard jc
ON u."_id_" = jc.technicians_fk
GROUP BY
u."_id_";
我不知道 Java 与这个问题有什么关系,但是您不能从 JPA 或 Hibernate 等工具中使用上面的确切语法。您可能需要考虑对这个特定问题使用原始查询。
要求统计申请中“技术员”的“open job”和“closed job”的数量
如果字段“status”为“pending”或“work started”,则作业已打开,否则作业状态为已关闭
我使用 SQL 脚本来计算空缺职位和已关闭职位的数量,我的问题是我无法计算特定技术人员 _id。
这是我的 SQL 计算空缺职位的脚本:
select count(*)
from jobcard
left join "user" on "user"."_id_" = jobcard.technicians_fk
where jobcard.status = "Pending"
但问题出在我只想计算特定用户 ID
我会在这里使用条件聚合:
SELECT
u."_id_",
COUNT(*) FILTER (WHERE jc.status IN ('pending', 'word started')) AS open_cnt,
COUNT(*) FILTER (WHERE jc.status NOT IN ('pending', 'word started')) AS closed_cnt
FROM "user" u
LEFT JOIN jobcard jc
ON u."_id_" = jc.technicians_fk
GROUP BY
u."_id_";
我不知道 Java 与这个问题有什么关系,但是您不能从 JPA 或 Hibernate 等工具中使用上面的确切语法。您可能需要考虑对这个特定问题使用原始查询。