sql - 查找行出现的次数

标签 sql database oracle

我有一个包含重复行的表,我需要单独提取这些重复行。下面是我的表格示例:

我的表:

ID   Offer  
1     10
2     10
1     12
1     10
2     20
2     10

接下来我想要计算每个 ID 的优惠出现次数。即我的最终结果应该是:

ID    Offer    Count
1      10       1
2      10       1
1      12       1
1      10       2
2      20       1
2      10       2

如您所见,计数应根据每个 ID 优惠显示的次数而增加。

我尝试过类似的方法:

select id,offer,count(offer) over (partition by id);

但这只是给出了该 ID 的特定优惠的总数,而不是我正在寻找的结果。

非常感谢任何帮助!

最佳答案

您可以使用ROW_NUMBER:

select id,offer,ROW_NUMBER() over (partition by id, offer order by rownum)
from tab

关于sql - 查找行出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329347/

相关文章:

mysql - 从一个表中选择包含另一个表中一长串单词中的任何单词的行

java - Oracle SQL Developer 加载 Java 错误

sql - 如何为每行添加具有相同值的列?

Mysql:使用另一个数据库中的表中的值更新表

java - 什么样的数据库适合存储我的对象?

mysql - SQL 连接中的多个条件

oracle - 你能动态获取你在oracle apex中所在的页码吗?

sql - 使用 Groovy SQL 计算受影响的行数

database - 我如何重新登录到 Oracle SQL Developer 的 HR 数据库(密码已过期)?

mysql - 如何选择两个日期之差大于某个值的所有记录