2017-01-17 4 views
0

Привет всем я хочу, чтобы найти уникальный дубликат и их число появления,Как найти уникальные дубликаты в SQL

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 от компании в воскресенье, т.е. ид = 1 и суммы = 100, на в тот же день он дал деньги обратно компании т.е. идентификатор = 2, сумма = -100

similay для ID = 3 и идентификатор = 4

но ID = 5 и 6 являются дубликатами как сумма не восстанавливается и это произошло в тот же день.

я хочу, чтобы отобразить

Count name Amount 
2  ram 100 

Count это число появления повторяющихся значений.

Я пробовал много логики, но не использовал .пожалуйста, помогите мне. спасибо

Примечание: Дублированный означает два последовательных положительных/отрицательных значения для любого дня.

+0

К днем ​​или по всему миру? – McNets

+0

Почему вы хотите отобразить '100', если непогашенная сумма фактически' 200'? –

+0

@TimBiegeleisen ответ: количество 100 как произошло 2 раза (кол-во) для Ram – user7334955

ответ

0

Вы можете попробовать ниже запроса (при условии, имя таблицы, как ТПС):

логика: если все наоборот, то она будет иметь одно положительное и одно отрицательное значение в вашем случае 100 и -100, так их сумма будет нуль, следовательно, в условии предложения мы игнорируем их.

select count(Id),name,amount from tbl group by name,day,amount having count(id)>1 and sum(amount)>0 
Смежные вопросы