用以下数据显示一个表,如何排除“单独”值?
id; data
(1, 'foo'),
(2, 'foo'),
(3, 'foo'),
(4, 'bar'),
(5, 'bar');
(6, 'jak');我试着用这个:
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 3row_number()为每个分区中的行提供一个索引。
如何按分区获得行数?某种WHERE partition_count > 1。
发布于 2019-09-20 13:37:02
使用count作为窗口函数:
SELECT id, data
FROM (SELECT id, data,
count(*) OVER (PARTITION BY data) AS c
FROM t) AS q
WHERE c > 1;https://dba.stackexchange.com/questions/249293
复制相似问题