我有一个问题,我如何才能只让学生获得他/她竞选所获得的最高票数,而该候选人在我的查询中被其组织ID过滤掉。
这是sqlfiddle链接:http ://sqlfiddle.com/#!2/fd3d76/3
这是我到目前为止构造的查询:
Select c.c_id, s.s_fname, count(r.c_id)
from results r, candidates c, student s,positioning p, organization o
where r.c_id = c.c_id
AND c.sid = s.sid
AND c.pos_id = p.pos_id
AND o.org_id = c.org_id
AND o.org_id = 1
GROUP BY c.c_id;
从我提供的链接给出的输出中,我只需要看到:
约翰(John),总统,2->因为他是获得总统职位最高票的人
克里斯,副总裁,3
秘书Ciel,3岁
感谢那些会帮助的人。。。以及那些只想查看我的问题的人。xD
http://sqlfiddle.com/#!2/fd3d76/19
SELECT src.c_id, src.s_fname, c
FROM (
SELECT c.c_id, s.s_fname, count(r.c_id) AS c, p.pos_id
FROM results r, candidates c, student s,positioning p, organization o
WHERE r.c_id = c.c_id
AND c.sid = s.sid
AND c.pos_id = p.pos_id
AND o.org_id = c.org_id
AND o.org_id = 1
GROUP BY c.c_id
) src
GROUP BY src.pos_id;
最终,您可以添加:
HAVING MAX(src.c);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句