gpt4 book ai didi

sql - 使用连接从 SQL 中的两个单独表中汇总信息的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 07:44:18 24 4
gpt4 key购买 nike

我有两个具有以下结构的表:

CREATE TABLE COST1 (
ID,
COUNTER,
COST
)

CREATE TABLE COST2 (
ID,
COUNTER,
COST
)
ID可用于 JOIN ;而同时 COUNTERCOST在两个表中具有相同的名称,它们彼此不相关 ID是。我想创建一个结果集 COST3具有以下形式:
ID, sum(COST1.cost) + sum(COST2.cost).
这是我想出的,但我不知道是否用 GROUP BY 对原始表格求和来自 JOIN 的结果会按我的意愿工作吗?
SELECT
ID,
( sum(c1.COST) + sum(c2.COST) ) as COST_TOTAL
FROM
COST1 c1
JOIN COST2 c2 ON c1.ID = c2.ID
GROUP BY
ID;
有了一些数据,结果应该是这样的:
成本 1


ID
柜台
成本


一种
1
50

一种
2
30


1
25


2
30


成本 2:


ID
柜台
成本


一种
1
20

一种
2
40


1
50


2
10


3
20


成本 3:


ID
成本


一种,
140

乙,
135

最佳答案

 create table COST1(ID varchar(5), Counter int,Cost int);
insert into COST1 values('A', 1, 50 );
insert into COST1 values('A', 2, 30 );
insert into COST1 values('B', 1, 25 );
insert into COST1 values('B', 2, 30 );
insert into COST1 values('C', 2, 30 );


create table COST2(ID varchar(5), Counter int,Cost int);
insert into COST2 values('A', 1, 20 );
insert into COST2 values('A', 2, 40 );
insert into COST2 values('B', 1, 50 );
insert into COST2 values('B', 2, 10 );
insert into COST2 values('B', 3, 20 );
insert into COST2 values('D', 3, 20 );
查询#1(获取两个表中可用的所有 ID 的总和)
 Select C1.ID, (C1.cost+C2.cost) as Cost
from
(select ID, sum(COST) cost from COST1
group by ID) C1

Inner join
(select ID, sum(COST) cost from COST2
group by ID) C2

on C1.ID=C2.ID
GO
输出:


ID
成本


一种
140


135


查询#2(获取任何表中可用的所有 ID 的总和)
 select ID, sum(cost) Cost
from (
(select id, cost
from cost1
) union all
(select id, cost
from cost2
)
) Cost3
group by id;
GO
输出:


ID
成本


一种
140


135

C
30

D
20


db< fiddle here

关于sql - 使用连接从 SQL 中的两个单独表中汇总信息的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67274387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com