【问题标题】:How to relate a group by count from one relation into another relation?如何通过计数将一个组从一个关系关联到另一个关系?
【发布时间】:2017-02-04 09:30:37
【问题描述】:

我有以下两种模式:

advisor(s_ID, i_ID)
instructor(ID, name, dept_name, credits)

我通过以下方式计算了每个不同 i_ID 的 i_ID 出现总数:

SELECT i_ID, count(*)
FROM advisor
GROUP BY i_ID;

每个 i_ID 都属于一个部门名称。如何获取每个部门名称出现的总数?

例子:

i_ID     count 
21         3
23         4
27         1
29         5

假设 i_ID 21,23 属于讲师(ID,物理),而 i_ID 27,29 属于讲师(ID,化学),那么输出将是:

dept_name   count
physics       7(3+4)
chemistry     6(1+5)

【问题讨论】:

  • i_ID 是外键。我说的对吗?
  • 是的,你是对的。
  • 虽然它在讲师中被命名为 ID。

标签: mysql sql database schema


【解决方案1】:

我希望这会有所帮助。

select dept name, 0 as total advised
from (select dept name from department
minus
select dept name
from instructor)
union
select dept name, count(*) as total advised
from instructor, advisor
where instructor.id = advisor.I ID
group by dept name
order by dept name;

【讨论】:

    【解决方案2】:

    试试这个

      select a.dept_name,count(*) as count from instructor a join advisor b
        on a.ID=b.i_ID group by  a.ID
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      相关资源
      最近更新 更多