如何从POSTGRESQL中的UNION查询中减去值?

问题描述 投票:1回答:1

我的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 ()
sql postgresql union
1个回答
2
投票

您可以尝试使用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);

© www.soinside.com 2019 - 2024. All rights reserved.