努力争取工作...... ..
我有两张桌子: -
tbl.candidates:
candidate_id agency_business_unit_id
tbl.candidate_employment_tracker
candidate_id
候选人就业可以有一个candidate_id的重复记录,因为它包含不同客户的工作历史记录。
候选人表格对每位候选人都是唯一的。
我正在尝试获取将按agency_business_unit_id分组的结果,并计算候选_employment_tracker中存在的候选人数量。
E.g。
Agency Business Unit Id | Candidates
------------------------------------------------------------
100 | 2
987 | 1
12 | 90
我正在处理的查询似乎没有起作用,因为我在candidate_employment_tracker中得到了候选人的数量。
SELECT
abu.agency_business_unit_id,
abu.agency_business_unit_name,
count(c.candidate_id) AS candidateCount
FROM candidate_employment_tracker cet
INNER JOIN candidate c ON c.candidate_id = cet.candidate_id
INNER JOIN agency_business_unit abu ON abu.agency_business_unit_id = c.agency_business_unit_id
WHERE c.candidate_ni_number NOT REGEXP '^[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z] ?[0-9]{2} ?[0-9]{2} ?[0-9]{2} ?[ABCD]$'
GROUP BY abu.agency_business_unit_id
ORDER BY abu.agency_business_unit_name ASC
我尝试了几种方法,结果不一致。例如,我知道其中一个代理业务单位只有1名候选人,但结果是2.这是由于这位特定候选人在候选人就业跟踪表中有2条记录。我会继续抨击,但任何帮助都会非常感激。
答案 0 :(得分:3)
你需要
count(DISTINCT c.candidate_id)
这将避免重复计算,即候选人在候选人就业跟踪表中有2条记录。
答案 1 :(得分:0)
嗯,这似乎不起作用我现在进一步研究结果。当我比较代理业务部门的候选人时,我的计数数字不一致。