我的UNION查询是:
SELECT type, hs
FROM (...) as table_1
UNION
SELECT type, hs
FROM (...) as table_2
UNION
SELECT type, hs
FROM (...) as table_3
我想做的是:
SELECT
table_1.hs hs_1,
table_2.hs hs_2,
table_3.hs - (table_1.hs + table_2.hs) hs_3
FROM ()
告诉我,我是否正确解释了自己。
**编辑
如我所知,我添加了更多细节:
来自所有3个表的UNION的行是:
type | hs
___________
'BLUE' | 8
'RED' | 2
'ALL' | 15
我需要的是:
type | hs
___________
'BLUE' | 8
'RED' | 2
'REST' | 5
'REST'值是从ALL(15)中减去'RED'(2)+'BLUE'(8)的加法得到的
在Postgresql中,类似于:
SELECT
table_1.hs hs_1,
table_2.hs hs_2,
table_3.hs - (table_1.hs + table_2.hs) hs_3
FROM ()
您可以尝试使用qazxsw poi来获取qazxsw poi结果集。然后使用CTE
和子查询来制作你的逻辑。
Scheme(PostgreSQL)
UNION
查询#1
CASE WHEN
CREATE TABLE T1(
type varchar(50),
hs int
);
CREATE TABLE T2(
type varchar(50),
hs int
);
CREATE TABLE T3(
type varchar(50),
hs int
);
INSERT INTO T1 VALUES ('BLUE',8);
INSERT INTO T2 VALUES ('RED' , 2);
INSERT INTO T3 VALUES ('ALL' , 15);