【问题标题】:inner join with group by expression in oracle sql [duplicate]oracle sql中的group by表达式的内部连接[重复]
【发布时间】:2013-03-30 00:24:56
【问题描述】:

我是 sql 新手,感谢任何帮助。

我有两张桌子,employeesjobsemployees 包含一个变量 job_id(多个员工可以有相同的 job_ID)。 jobs 包含变量job_idjob_title(一个job_ID 对应一个job_title,如果你有兴趣,这是oracle 中的hr schema)。

我希望查询返回:job_title、job_ID 和拥有相同 job_Id 的人数。

我尝试了以下代码:

select j.job_title, e.job_ID, count(e.job_ID)
from employees e, jobs j
where e.job_id=j.job_id
group by e.job_Id

错误信息是:

ORA-00979: 不是 GROUP BY 表达式 00979. 00000 - “不是 GROUP BY 表达式” *原因:
*行动:
行错误:83 列:8

你能帮我解决这个问题吗?

【问题讨论】:

    标签: sql oracle group-by inner-join


    【解决方案1】:

    错误信息有点误导。当您select 一堆字段和一个聚合时,您必须group byselect 的每个字段,并且只有您select 的字段。所以你的查询必须是:

    select j.job_title, e.job_ID, count(e.job_ID)
    from employees e, jobs j
    where e.job_id=j.job_id
    group by e.job_Id, j.job_title
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2017-09-21
      • 2014-12-28
      • 2019-05-17
      • 2013-01-03
      • 2013-01-08
      • 2012-10-03
      相关资源
      最近更新 更多