oracle中计数sql,sql – 如何获得Oracle中不同记录的最高计数?

我有一个包含大量记录的表,其中一些字段重复.我想要最常见的每个重复.

所以,如果我的表有如下数据:

ID Field1 Field2

1 A 10

2 A 12

3 B 5

4 A 10

5 B 5

6 A 10

7 B 8

8 B 5

9 A 10

我可以选择不同的并获得计数:

select distinct Field1, Field2, count(Field1)

from Table

group by Field1, Field2

order by Field1, count(Field1) desc

这会给我

Field1 Field2 Count

A 10 4

A 12 1

B 5 3

B 8 1

但是,我只想要具有最高计数的每个Field1的记录.我一直在使用rank()而不是分区和子查询,但是没有找到使用两个字段表示唯一性并按计数选择最高记录的正确语法.我一直在寻找,我确信这已被问到,但我找不到它.

我想得到以下内容

Field1 Field2 (optional) Count

A 10 4

B 5 3

目标是查看一个只有一点不正确数据的表(在field1和field2之间链接错误),并根据它通常的内容确定它应该是什么.我不知道有多少不良记录,因此将Count除去低于某个阈值会起作用,但似乎有点笨拙.

如果它更好,我可以制作一个临时表,将我的不同值放入,然后从那里选择,但似乎不应该是必要的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值