基于组的视图并存在于表中

Views based on groups and exists across tables

我有两个表:

T1

Col1    Col2
A       1
A       2
A       2
B       2
C       3
D       4
D       4

T2

Col1    Col2
A       2
B       2
C       4

我希望根据以下内容创建两个视图:

其中来自 t2 的 Col1 和 Col2 在 t1 中存在一次

其中 t2 中的 Col1 和 Col2 在 t1 中存在不止一次

预期输出为

观看 1

Col1    Col2
B       2

查看 2

Col1    Col2
A       2

我怎样才能实现这个目标?

Table 脚本:

create table t1 (col1 varchar2(1), col2 varchar2(2));
create table t2 (col1 varchar2(1), col2 varchar2(2));
insert into t1 values ('A',1);
insert into t1 values ('A',2);
insert into t1 values ('A',2);
insert into t1 values ('B',2);
insert into t1 values ('C',3);
insert into t1 values ('D',4);
insert into t1 values ('D',4);
insert into t2 values ('A',2);
insert into t2 values ('B',2);
insert into t2 values ('C',4);

您可以加​​入 t2 来自 t2 的聚合查询,计算 col1 出现的次数:

CREATE VIEW view1 AS
SELECT t2.*
FROM   t2
JOIN   (SELECT   col1, col2
        FROM     t1
        GROUP BY col1
        HAVING   COUNT(*) = 1) c ON t2.col1 = c.col1 AND t2.col2 = c.col2;

CREATE VIEW view2 AS
SELECT t2.*
FROM   t2
JOIN   (SELECT   col1, col2
        FROM     t1
        GROUP BY col1
        HAVING   COUNT(*) > 1) c ON t2.col1 = c.col1 AND t2.col2 = c.col2;