我已加入2张桌子。一个表具有所有值(+/-量),而另一个表则主要具有尺寸数据。加入后,我想运行一个查询,以汇总给定年份的所有负值和正值。
问题似乎正在第三行上发生。有什么想法吗?
select sum(sales_amount)
from salesInfo s inner joint dimInfo d
where sales_amount <0 and year = '2019';
由于第3行抛出错误,因此未生成查询。
错误-ORA-00905:缺少关键字00905。00000-“缺少关键字”
答案 0 :(得分:1)
在JOIN语句之后添加一个ON子句以指定JOIN条件
import numpy as np
df.Med.replace({0:np.nan})
答案 1 :(得分:1)
该问题很可能是由于缺少ON
子句而导致的,INNER JOIN
在Oracle SQL中不允许使用NATURAL JOIN
,这与其他将其联接等同于交叉联接的数据库方言不同。
或者,您可以使用Oracle的from salesInfo s natural join dimInfo d
联接表之间匹配的命名列:
select year,
sum(case when sales_amount < 0 then sales_amount end) as negative_sales,
sum(case when sales_amount > 0 then sales_amount end) as positive_sales
from salesInfo s
inner join dimInfo d on s.some_id = d.some_id
group by year
无论哪种方式,您都可以运行条件汇总,甚至按 year 分组:
LIBS
答案 2 :(得分:0)
只需使用条件聚合:
select sum(case when sales_amount < 0 then sales_amount end) as neg_sum,
sum(case when sales_amount > 0 then sales_amount end) as pos_sum
from salesInfo s inner join
dimInfo d
on ? = ? -- whatever your `JOIN` conditions are here
where year = 2019;