如何在SQL中查找唯一的重复项

时间:2017-01-17 12:24:18

标签: oracle11g

大家好我想找到唯一的副本及其出现次数

Table 1 
Id  name  Amount(in and out)  Day
1   ram   100                 Sunday
2   ram  -100                 Sunday
3   ram   100                 Monday
4   ram  -100                 Monday
5   ram   100                 Wednesday
6   ram   100                 Wednesday

Ram在周日从公司获得100,即id = 1且金额= 100,同一天他将钱还给公司,即id = 2,金额= -100

similay for id = 3 and id = 4

但是id = 5和6是重复的,因为金额没有反转并且在同一天发生。

我想要显示

Count  name  Amount
2        ram  100

Count是重复值的出现次数。

我尝试了许多逻辑,但没有用。请帮助我。谢谢

注意:重复表示任何一天的两个连续正/负值。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询(假设表名为tbl):

逻辑:如果它被反转,那么在你的情况100和-100中将有一个正值和一个负值,因此它们的总和将为零,因此在我们忽略它们的条款中。 < / p>

select count(Id),name,amount from tbl group by name,day,amount  having count(id)>1  and sum(amount)>0