我怎么写这个SQL查询

贾斯汀·艾森加德(Justin Aizengard)

我有一个问题,我如何才能只让学生获得他/她竞选所获得的最高票数,而该候选人在我的查询中被其组织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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章