CREATE TABLE city_data (
city STRING,
random_field STRING
);
INSERT INTO city_data (city, random_field) VALUES
('New York', 'example1'),
('Los Angeles', 'example2'),
('New York', 'example3'),
('Chicago', 'example4');
select
city ,
count(1) over()
from city_data
group by city ;
=======================================================================
Los Angeles 3
New York 3
Chicago 3
注释:如上结果 是对整个表作为一个分区, count的值结果都一样,所有数据为1个窗口.
========================================================================
select
city ,
count(1) over(partition by city )
from city_data
group by city ;
注释: 这种写法是没任何意义的. 会把所有字段值数量返回 count结果为1 的值.
========================================================================
Los Angeles 1
New York 1
========================================================================
select
city ,
count(1) over(partition by city )
from city_data ;
========================================================================
Los Angeles 1
New York 2
New York 2
注释:属于正常开窗函数.