首页 > 解决方案 > 插入并选择查询.... 聚合多行数据

问题描述

我在 oracle 中有一个特定的要求,我在 table1 中有以下数据。我需要对表 1 的第 3 列中具有相同编号和日期的值求和,并插入表 2 中所示的数据。

有没有办法可以在查询中使用 insert 和 select 来实现这个要求?

表格1

1 | 5/7/2013  | 10
1 | 5/7/2013  | 30
1 | 5/7/2013  | 50
1 | 6/28/2015 | 5
1 | 6/28/2015 | 70
1 | 6/28/2015 | 10
2 | 1/9/2016  | 60
2 | 1/9/2016  | 70
2 | 1/9/2016  | 80

表 2

1 | 5/7/2013  | 90
1 | 6/28/2015 | 85
2 | 1/9/2016  | 210

标签: sqloracle11goracle-sqldeveloper

解决方案


这是示例。

create table c_table (
    c1 number,
    c2 DATE,
    c3 number);

create table c_table_2 (
    b1 number,
    b2 DATE,
    b3 number
);

insert into c_table values (1, to_date('5/7/2013', 'MM/dd/YYYY'), 10);
insert into c_table values (1, to_date('5/7/2013', 'MM/dd/YYYY'), 50);
insert into c_table values (1, to_date('6/28/2015', 'MM/dd/YYYY'), 5);
insert into c_table values (1, to_date('6/28/2015', 'MM/dd/YYYY'), 70);
insert into c_table values (1, to_date('6/28/2015', 'MM/dd/YYYY'), 10);
insert into c_table values (2, to_date('1/9/2016', 'MM/dd/YYYY'), 60);
insert into c_table values (2, to_date('1/9/2016', 'MM/dd/YYYY'), 70);
insert into c_table values (2, to_date('1/9/2016', 'MM/dd/YYYY'), 80);

commit;

insert into c_table_2 select c1, c2, sum(c3) from c_table group by c1, c2;

commit;

select * from c_table_2;

在此处输入图像描述

请让我知道这是否适合您


推荐阅读