标签: ora-00937

如何解决ORA-00937:计算百分比时不是单组组功能?

我正在尝试获取某个区域中可用的itemid的百分比.使用我的查询,我收到一个错误ORA-00937: not a single-group group function

所有细节:

我有这两个表:

ALLITEMS
---------------
ItemId  | Areas
---------------
1       | EAST
2       | EAST
3       | SOUTH
4       | WEST

CURRENTITEMS
---------------
ItemId
---------------
1
2
3
Run Code Online (Sandbox Code Playgroud)

并希望这个结果:

---------------
Areas| Percentage
---------------
EAST   | 50  --because ItemId 1 and 2 are in currentitems, so 2 items divided by the total 4 in allitems = .5
SOUTH  | 25   --because there is 1 item in currentitems table that are in area SOUTH (so 1/4=.25) …
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00937

6
推荐指数
2
解决办法
7万
查看次数

平均值的最大值

我应该获得每个部门的平均工资,并且只显示平均工资最高的部门。我想出了这个查询,但它不起作用。有人知道吗?

SELECT department, max(avg(wage))
FROM employees
GROUP BY department;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:第1行出现错误:ORA-00937:不是单组组函数

sql oracle oracle10g ora-00937

4
推荐指数
2
解决办法
2473
查看次数

从员工表中选择最早雇用的员工

我有一个员工表,其中的字段是:

first_name,last_name,hire_date,salary,department_id,department_name等.

我被要求找到最早雇用的员工.我知道max,sysdate和months_between等函数,但我不知道如何在这里使用它?

我在想这个问题可以像这样解决:

select e.first_name,max(e.hire_date)
from employees e
Run Code Online (Sandbox Code Playgroud)

但它会生成以下错误:

 oRA-00937: not a single-group group function
    00937. 00000 -  "not a single-group group function"
    *Cause:    
    *Action:
    Error at Line: 1 Column: 7
Run Code Online (Sandbox Code Playgroud)

那么请告诉我什么是正确的形式?

sql oracle ora-00937

4
推荐指数
1
解决办法
2万
查看次数

显示每条记录的全部总和

假设您有这两列的一些项目表:

  • 项目名称
  • 价钱

.... ItemName独特的地方.

你如何显示每个价格的总和ItemName(我使用的是Oracle)?如果我试试这个:

SELECT ItemName, 
       SUM(Price)
  FROM Items
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ORA-00937:不是单组组功能

...只有在我使用GROUP BY时才会消失.但是,我只能按群体进行SUM,而不是所有群体.

sql oracle ora-00937

2
推荐指数
1
解决办法
1万
查看次数

选择子查询期间ORA-00937错误

我正在尝试编写一个查询,该查询返回员工人数,平均工资以及低于平均水平的员工人数.

我到目前为止的查询是:

select trunc(avg(salary)) "Average Pay", 
count(salary) "Total Employees",
(
   select count(salary)
   from employees 
   where salary < (select avg(salary) from employees)
) UnderPaid
from employees;
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我在子查询中得到ora-00937错误.

我原以为"计数"函数可能是导致问题的原因,但即使运行更简单的子查询,例如:

select trunc(avg(salary)) "Average Pay", 
count(salary) "Total Employees",
(
  select avg(salary) from employees 
) UnderPaid
from employees;
Run Code Online (Sandbox Code Playgroud)

仍然返回相同的错误.由于AVG和COUNT似乎都是聚合函数,我不确定为什么我会收到错误?

谢谢

oracle ora-00937

0
推荐指数
1
解决办法
933
查看次数

标签 统计

ora-00937 ×5

oracle ×5

sql ×4

oracle10g ×1