传统的聚合函数
sum over 作用不聚合,而将聚合的结果放在每行的列中
窗口函数用OVER (partition by 列名),不需要group by关键字,
窗口函数概念。
与分组聚合函数类似,但是每一行数据都生成一个结果。
select id,`name`,age,sex,AVG(age) over(partition by sex) FROM `user`;
over关键字结合聚合函数实现窗口函数,类似于group by 的作用,但是group byde 的结果条目数量是分组数,而窗口函数保留每一行数据并且在每一行数据后加一列表示是分组计算的结果
drop table sales; create table sales( year year, country varchar(20), product varchar(20), profit int ); insert into sales (year, country, product, profit) values (2000,'Finland','Computer',1500), (2001,'USA','Computer',1200), (2001,'Finland','Phone',10), (2000,'India','Calculator',75), (2001,'USA','TV',150), (2000,'India','Computer',1200), (2000,'USA','Calculator',5), (2000,'USA','Computer',1500), (2000,'Finland','Phone',100), (2001,'USA','Calculator',50), (2001,'USA','Computer',1500), (2001,'India','Calculator',75), (2001,'USA','TV',100);