计算并显示多个字段的重复项

时间:2015-09-14 12:11:30

标签: sql oracle oracle11g

使用Oracle 11g我有一个包含以下字段的表:

名称,类型,参考

我想得到重复数量的计数。它的重复定义是,对于两个记录,Name和Type是相同的,但Ref是不同的。

我还希望能够列出具有重复记录的记录(每个副本只显示一条记录)

以下内容是重复的:

记录1:名称1,大,0001
记录1:名称1,大,0002

以下内容不会重复:

记录1:名称1,大,0001
记录1:名称1,中,0002

1 个答案:

答案 0 :(得分:3)

使用GROUP BY执行MAX(ref),为每个名称/类型组合返回一行。选择每行的最大参考值。

仅当该名称/类型组合有多行时,才会添加

HAVING以返回行。

select Name, Type, max(Ref)
from tablename
group by Name, Type
having count(*) > 1