UNION 不比较其中一列

UNION without comparing one of the columns

我有两个问题

select A, B, C, D from T1, T2

select A, B, C, D from T2, T3

我想对两个查询进行 UNION(无重复)但不比较 D 列,也就是说,如果列 A B 和 C 相同,则无论 D 为何,它们都被视为重复。我不想 select 来自联接表 T1、T2 和 T3。这可能在一个声明中吗? (这是甲骨文)

使用 UNIONGROUP BY 来执行此操作,如下所示;)

select A, B, C
from(
    select A, B, C, D from T1, T2
    union
    select A, B, C, D from T2, T3
)t
group by A, B, C

并且你必须指定当A, B, C相同时你想要得到哪个D值,这里我假设你得到max(D),像这样;

select A, B, C, max(D) as D
from(
    select A, B, C, D from T1, T2
    union
    select A, B, C, D from T2, T3
)t
group by A, B, C

无论你要保留哪个值,在oracle中使用group by时,你只能select出现在group by中的列或其他一些具有聚合函数的列。