You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用HAVING子句设置动态值,筛选完成全部规定课程的参与者

课程完成参与者筛选需求

我目前有6门课程,需要筛选出修完全部6门课程的参与者。

原始统计数据

monthparticipant_idcount
2021-0816
2021-0826
2021-0834
2021-0846

期望筛选结果

monthparticipant_idcount
2021-0816
2021-0826
2021-0846

现有查询与优化需求

以下是我编写的示例查询语句,我希望将HAVING子句行的阈值设置为动态值,而非写死的count(c.name) >= 6。我需要实现动态值的原因是,一旦后续需要删除2门或更多课程,阈值可以自动匹配当前有效课程的总数,始终准确筛选出修完所有现有规定课程的参与者。

SELECT TO_CHAR(CA.LOG_IN_DATETIME, 'YYYY-MM') AS MONTH, CA.PARTICIPANT_ID, COUNT(DISTINCT C.NAME)

FROM FRS.COURSE_ATTENDANCE CA

INNER JOIN FRS.COURSE_SCHEDULE_DETAIL AS CSD
ON CA.COURSE_SCHEDULE_DETAIL_ID  = CSD.COURSE_SCHEDULE_ID
INNER JOIN FRS.COURSE_SCHEDULE AS CS
ON CSD.COURSE_SCHEDULE_ID = CS.ID 
INNER JOIN FRS.COURSE AS C
ON CS.COURSE_ID = C.ID
INNER JOIN FRS.COURSE_CATEGORY AS CC
ON C.COURSE_CATEGORY_ID = CC.ID
INNER JOIN FRS.EMPLOYEE AS E
ON CA.PARTICIPANT_ID = E.ID
INNER JOIN FRS.MEMBER_ROLE AS MR
ON E.MEMBER_ROLE_ID = MR.ID

WHERE C.NAME IN (SELECT C.NAME FROM FRS.COURSE C
JOIN FRS.COURSE_CATEGORY CC
ON C.COURSE_CATEGORY_ID = CC.ID
WHERE CC.CATEGORY = 'RGB Standard')

AND CA.STATUS = 'P' 
AND C.MANDATORY = 'Yes' 
AND MR.ROLE_TYPE = 'RGB'
AND CC.CATEGORY = 'RGB Standard'

GROUP BY MONTH, PARTICIPANT_ID
HAVING COUNT(C.NAME) >= 6

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:30:03