gpt4 book ai didi

sql - 如何查询具有相同值集的项目

转载 作者:行者123 更新时间:2023-12-04 23:08:05 25 4
gpt4 key购买 nike

我正在寻找一种查询具有相同值集的项目的有效方法。

我有下表

C_1  C_2
--------
A 1
A 2
-------
B 1
B 2
B 3
-------
C 1
C 2
-------
D 1
D 2
D 3
-------
E 1
E 2
-------
F 0
F 2

我将从 C_1 中选择与给定项目具有完全相同的 c_2 元素集的项目列表。

对于项目 A 我将有
C
E

对于项目 B 我将有
D 

如何在 SQL(Oracle 10g)中完成?

这是用于测试目的的创建表语句
create table t (c_1 varchar2(1), c_2 number);
INSERT into t VALUES('A', 1);
INSERT into t VALUES('A', 2);
INSERT into t VALUES('B', 1);
INSERT into t VALUES('B', 2);
INSERT into t VALUES('B', 3);
INSERT into t VALUES('C', 1);
INSERT into t VALUES('C', 2);
INSERT into t VALUES('D', 1);
INSERT into t VALUES('D', 2);
INSERT into t VALUES('D', 3);
INSERT into t VALUES('E', 1);
INSERT into t VALUES('E', 2);
INSERT into t VALUES('F', 0);
INSERT into t VALUES('F', 2);

最佳答案

您可以使用 10g 的 COLLECT 功能;因为您不想看到 c_2 值是什么,您甚至不需要 cast它。

select c_1
from t
where c_1 != 'A'
group by c_1
having collect(c_2) = (select collect(c_2) from t where c_1 = 'A' group by c_1)
/

关于sql - 如何查询具有相同值集的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com