Sql 当连接两个表中的聚合时,如何避免笛卡尔积?
我需要连接两个表中的聚合,但得到的是笛卡尔积。我怎样才能避免呢Sql 当连接两个表中的聚合时,如何避免笛卡尔积?,sql,oracle,Sql,Oracle,我需要连接两个表中的聚合,但得到的是笛卡尔积。我怎样才能避免呢 SELECT TO_CHAR(c.date, 'YYYY-MM') AS "Year-Month", SUM(c.amount) as c_amount, SUM(o.amount) as o_amount FROM c JOIN o ON c.common = o.common AND c.date = o.date GROUP BY TO_CHAR(c.date, 'YYYY-MM') ORDER
SELECT TO_CHAR(c.date, 'YYYY-MM') AS "Year-Month",
SUM(c.amount) as c_amount,
SUM(o.amount) as o_amount
FROM c JOIN o ON c.common = o.common AND c.date = o.date
GROUP BY TO_CHAR(c.date, 'YYYY-MM')
ORDER BY TO_CHAR(c.date, 'YYYY-MM');
预骨料:
select c.yyyymm, c.c_amount, o.o_amount
from (select to_char(c.date, 'YYYY-MM') as yyyymm,
sum(c.amount) as c_amount
from c
group by to_char(c.date, 'YYYY-MM')
) c left join
(select to_char(c.date, 'YYYY-MM') as yyyymm,
sum(o.amount) as o_amount
from c join
o
on c.common = o.common
group by to_char(c.date, 'YYYY-MM')
) o
on c.yyyymm = o.yyyymm;
请提供样本数据和期望的结果。这很有效!非常感谢。你会推荐什么资源来学习这些技巧?@oavaldezi。这相当棘手。您可能只需要使用数据方面的实践和经验。