【问题标题】:combine two sub query column id into one in full outer join SQL在全外连接 SQL 中将两个子查询列 id 合二为一
【发布时间】:2020-10-19 06:06:38
【问题描述】:

我有两张如下表。使用完全外连接,我将两个表值合二为一。 我想将所有 id 放入一列。 在查询下方使用:

select sum(price),A.id,B.id
from
(select sum(price),id from table_a group by id) A
Full outer join
(select sum(price),id from table_b group by id)B
on A.id=B.id
group by A.id, B.id


table a     table b 
                
id  price   id  price
1   20      1   10
2   40      4   20
3   10      5   30
7   10      6   40

现在我的结果如下所示

id  id  price
1   1   30
2   ?   40
3   ?   10
?   4   20
?   5   30
?   6   40
7   ?   10

但我想要如下结果:

id  price
1   30
2   40
3   10
4   20
5   30
6   40
7   10

提前致谢 爱你

【问题讨论】:

    标签: teradata-sql-assistant


    【解决方案1】:

    尝试关注

    SELECT
      ab.id as id, 
      SUM(price) as price
    FROM
    (
     SELECT id, price FROM table_a
     UNION ALL
     SELECT id, price FROM table_b
    ) ab
    GROUP BY ab.id
    ORDER BY ab.id
    ;
    

    使用全外连接

      SELECT
        COALESCE(a.id, b.id) as id, 
        (COALESCE(a.price, 0) +  COALESCE(b.price, 0)) as price 
      FROM
        test_a a
        FULL OUTER JOIN test_b b ON (a.id = b.id)
    

    【讨论】:

    • 感谢您的回答。我不能全部使用联合。我想获取完全加入的数据。
    • Div,答案中添加了完整的外部联接
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多