Исключить строки из выбора, если эта строка имеет более одного одинакового значения / дубликата - PullRequest
0 голосов
/ 12 июля 2020

Как просто выбрать без строки, если в этой строке есть дубликаты

ID | Amount | Status | FK
---+--------+--------+---
1  | -1000  |    T   | 10
2  | -1500  |    T   | 11
3  | -100   |    T   | 12
4  | -200   |    T   | 13
5  | -300   |    T   | 14
6  |  300   |    R   | 14

Описание статуса: T = Транзакция, R = Возврат

И как я могу просто получить данные с идентификатором 1 , 2,3,4 и исключить 5 и 6?

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Другой вариант - использовать WITH TIES вместе с оконными функциями

Пример

Select top 1 with ties *
 From  YourTable
 Order By sum(1) over (partition by FK)

Возвращает

ID  Amount  Status  FK
1   -1000   T       10
2   -1500   T       11
3   -100    T       12
4   -200    T       13
0 голосов
/ 12 июля 2020

Пожалуйста, используйте запрос ниже,

select * from table_name
where fk not in
(select fk from table_name group by fk having count(1) > 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...