使用 DISTINCT 语句的 grp 中的唯一值?

Unique values in a grp using the DISTINCT statement?

我正在使用 SQL PLUS 从三个 table 查询,SNUMBER、ACCOUNTS 和 MYGRPS。

SELECT s.serialnumber,s.type,s.model,a.type,a.class, t.grp
from snumber s, accounts a, mygrps t
where s.snumber=a.snumber
and a.serialnumber=t.serialnumber
and rownum>2

我想在 MYGRPS table 中查找 ACCOUNTS table.

中 class 列具有重复值的组

一个grp中可以有1到多个序列号,我只想找到有多个序列号的grp。

每个序列号都有类型、型号和 class。每组应该有相同的 class.

grp 中的所有序列号都应具有来自帐户 table 的相同 class 值,因此我正在寻找具有多个序列号的 grp,它们在class 列,以修复这些 grps。

我已经想到了上面的说法,但需要一点帮助。我已经阅读了一些关于 DISTINCT select 声明的内容,但我不确定它是否可以应用于此处。

感谢任何帮助!

首先学习使用正确、明确的标准JOIN语法。 从不FROM 子句中使用逗号。

您需要 GROUP BYHAVING:

select t.grp, count(distinct a.class) as num_classes
from snumber s join
     accounts a
     on s.snumber = a.snumber join
     mygrps t
     on a.serialnumber = t.serialnumber
group by t.grp
having min(a.class) <> max(a.class);