我有一个查询,需要从这两个查询中获取结果并对其执行减号
"我的任务"
- 实际-从员工表计算平均薪金
- 错误-从员工表中计算平均工资,该表中的工资结尾不为零
- 结果:实际值-错误
下面是我尝试的查询。
质询1:
with actual as (
select avg(salary) as actual from employees ac);
,
miscalcualtion as (
select avg(salary) from employees mis WHERE MOD(salary, 10) != 0)
select ac.actual - mis.miscalcualtion from dual;
我得到这个错误:
第2行错误:
ORA-00928:缺少SELECT关键字
SP2 - 0042:未知命令"",-忽略行的其余部分。
SP2 - 0734:以"miscalcual ..."开头的未知命令-忽略行的其余部分。
从双通道选择交流实际
*
第1行错误:
ORA-00904:"AC"。"实际":无效标识符
质询2:
select
ac.actual,
mis.miscal
from
(
select
avg(salary) as actual
from
employees ac,
(
select
avg(salary) as miscal
from
employees mis
WHERE
MOD(salary, 10) != 0
);
查询#2未获得结果。
质询3:
select
(
(
select
avg(salary)
from
employees
) minus (
select
avg(salary)
from
employees
WHERE
MOD(salary, 10) != 0
)
) as Calculation
from
dual;
任何解决方案都非常感谢。解决HackerRank
问题
3条答案
按热度按时间nbnkbykc1#
您的第一个查询存在一些语法问题:
1.使用范围外的本地范围别名
mis
和act
1.不需要在参数之间使用表达式设置分号
计算两个平均值之间差异的最简单方法:
nkkqxpd92#
我写了答案,通过了
感谢作者作者@Öл е г Б е л о в
mbyulnm03#
这在MySQL中有效: