Figura uma tabela com os seguintes dados, como excluir valores 'sozinhos'?
id; data
(1, 'foo'),
(2, 'foo'),
(3, 'foo'),
(4, 'bar'),
(5, 'bar');
(6, 'jak');
Eu tento com isso:
select id, data, row_number() over (partition by data)
from t;
-- RESULT
id data row_number
4 bar 1
5 bar 2
1 foo 1
2 foo 2
3 foo 3
6 jak 1
-- EXPECTED (exclude partition with one row)
id data row_number
4 bar 1
5 bar 2
1 foo 1
2 foo 2
3 foo 3
row_number()
fornece um índice para as linhas em cada partição.
Como ter o número de linhas por partição? Algum tipo de WHERE partition_count > 1
.
Use
count
como uma função de janela: