使用大学关系(学生由不同部门的教员指导,每个学生只有一名顾问,但顾问可以有零到许多建议),我试图编写一个函数来计算给定部门中被建议的学生总数。
以下是供参考的表和列:
student(id,name,dept_name,tot_cred)
instructor(id,name,dept_name, salary)
advisor(s_id,i_id)
我已经知道如何使用定界符,因此不需要告诉我如何编写函数。我只是在从select语句中获取想要的内容时遇到问题。
到目前为止,这是我能想到的最好的方法:
SELECT *
FROM advisor
RIGHT OUTER JOIN instructor
ON i_id=id
ORDER BY dept_name;
该语句产生:
有没有办法我可以编写一个if语句或其他语句来删除所有NULL条目,然后使用count函数(在我将要编写的自定义函数中)来对dept_name发生的实例数进行计数,从而导致每个部门的建议总数是多少?
SELECT i.dept_name, COUNT(a.s_id)
FROM Instructor i
LEFT JOIN advisor a ON i.id = a.i_id
GROUP BY i.dept_name;
对于没有建议的部门,这将包括零。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句