Я понятия не имею, зачем вам нужно UNION ALL
здесь, но давайте предположим, что у вас есть более сложные проверки с вашим реальным делом.
WITH TAB (DATE, ID, NAME, ACCOUNT, STATUS) AS
(
VALUES
('04/28/2020', 123345, 'BERLIN', '5645756768', 'SUCCESS')
, ('04/28/2020', 123346, 'BERLIN', '5645756768', 'FAILURE')
, ('04/28/2020', 123344, 'BERLIN', '5645756768', 'SUCCESS')
, ('04/28/2020', 123344, 'BERLIN', '5645756761', 'FAULTED')
, ('04/28/2020', 123345, 'BERLIN', '5645756763', 'FAILURE')
, ('04/28/2020', 123346, 'BERLIN', '5645756764', 'SUCCESS')
, ('04/28/2020', 123347, 'BERLIN', '5645756766', 'FAILURE')
, ('04/28/2020', 123344, 'BERLIN', '5645756763', 'TIME OUT')
, ('04/28/2020', 123344, 'BERLIN', '5645756760', 'PENDING')
)
SELECT DATE, ID, NAME, ACCOUNT, STATUS
FROM
(
SELECT
DATE, ID, NAME, ACCOUNT, STATUS
, COUNT(1) OVER (PARTITION BY DATE, ACCOUNT) CNT
--FROM TAB
--WHERE STATUS IN ('SUCCESS', 'FAILURE')
FROM
(
SELECT DATE, ID, NAME, ACCOUNT, STATUS
FROM TAB
WHERE STATUS = 'SUCCESS'
UNION ALL
SELECT DATE, ID, NAME, ACCOUNT, STATUS
FROM TAB
WHERE STATUS = 'FAILURE'
)
)
WHERE CNT>2;
Тот же самый результат, который вы получите, если вы просто прокомментируете в целом FROM (...)
и раскомментируйте закомментированные строки. Результат это:
|DATE |ID |NAME |ACCOUNT |STATUS |
|----------|-----------|------|----------|-------|
|04/28/2020|123345 |BERLIN|5645756768|SUCCESS|
|04/28/2020|123344 |BERLIN|5645756768|SUCCESS|
|04/28/2020|123346 |BERLIN|5645756768|FAILURE|