我有两张表,结构如下:
CREATE TABLE COST1 (
ID,
COUNTER,
COST
)
CREATE TABLE COST2 (
ID,
COUNTER,
COST
)
``` `ID` 可用于 `JOIN` ; 而当 `COUNTER` 以及 `COST` 在两个表中都有相同的名称它们之间没有这样的关系 `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
idcountercosta150a230b125b230公司
成本2:
idcountercosta120a240b150b210b320公司
成本3:
艾德科斯塔,140b,135
5条答案
按热度按时间3lxsmp7m1#
查询#1(获取两个表中可用的所有ID的总和)
输出:
IDA140B135成本
查询#2(获取任何表中可用的所有ID的总和)
输出:
idcosta140b135c30d20成本
db<在这里摆弄
fkaflof62#
考虑执行非唯一的
ID
内部查询中的行:toe950273#
在和的并集上使用和:
请注意,您需要的是
union
保留重复行。hi3rlvi24#
我倾向于使用
union all
在子查询中,然后进行聚合:7nbnzgx95#
联合所有两个表,然后按子查询的id分组。使用在两个表之间划分特定列值的情况。
输出