【问题标题】:Oracle SQL correlated subquery: not a single-group group functionOracle SQL 关联子查询:不是单组分组函数
【发布时间】:2017-04-05 09:44:15
【问题描述】:

我正在尝试计算医生的旅行次数,并计算通行费的费用。我正在使用 ORACLE XE 11g 和 SQL Developer。我试图用 SELECT 中的相关子查询来做到这一点,但我收到了这条消息:

ORA-00937: not a single-group group function
00937. 00000 -  "not a single-group group function"
*Cause:    
*Action:
Error at Line: 2 Column: 11 

这是我谈到的查询:

SELECT person.name, person.surname, COUNT(DISTINCT travelID) AS numberoftravels, 
  (SELECT SUM(costs.cost) FROM costs
    JOIN travel ON costs.travelID = travel.travelID
    JOIN person ON travel.personID = person.personID
    JOIN staff ON travel.personID = staff.staffID
    WHERE stafftype = 'Doctor' AND costtype = 'tolls' and staff1.staffID = person.personID  
  ) AS tollscost

FROM travel JOIN person ON person.personID = travel.personID
  JOIN staff staff1 ON staff1.staffID = person.personID

WHERE stafftype = 'Doctor'
GROUP BY person.name, person.surname;

在我添加子查询之前,计数工作得很好。有谁明白我为什么会遇到这个问题?

【问题讨论】:

  • 只是将子查询作为连接表达式移动。它也更合适

标签: sql oracle11g subquery oracle-sqldeveloper correlated-subquery


【解决方案1】:

您缺少 GROUP BY 列 - personID

【讨论】:

  • 非常感谢。回想起来,这是一个菜鸟问题,不知道除了聚合之外的 SELECT 中的属性之外,我必须按其他任何东西排序
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 2012-03-03
  • 1970-01-01
  • 2020-12-05
相关资源
最近更新 更多