快速理解窗口函数功能,即window function 窗口函数、开窗函数、olap分析函数。窗口:可以理解为操作数据的范围,窗口有大有小,本窗口中操作的数据有多有少。也可以简单地解释为类似于聚合函数的计算函数,但是通过GROUP BY子句组合的常规聚合会隐藏正在聚合的各个行,最终输出一行;而窗口函数聚合后还可以访问当中的各个行,并且可以将这些行中的某些属性添加到结果集中。
--建表加载数据
CREATE TABLE employee(
id int,
name string,
deg string,
salary int,
dept string
) row format delimited
fields terminated by ',';
select * from employee;
----sum+group by普通常规聚合操作------------
select dept,sum(salary) as total from employee group by dept;
select id,dept,sum(salary) as total from employee group by dept; --添加id至结果,错误sql
+-------+---------+
| dept | total |
+-------+---------+
| AC | 60000 |
| TP | 120000 |
+-------+---------+
----sum+窗口函数聚合操作------------
select id,name,deg,salary,dept,sum(salary) over(partition by dept) as total from employee;
+-------+-----------+----------+---------+-------+---------+
| id | name | deg | salary | dept | total |
+-------+-----------+----------+---------+-------+---------+
| 1204 | prasanth | dev | 30000 | AC | 60000 |
| 1203 | khalil | dev | 30000 | AC | 60000 |
| 1206 | kranthi | admin | 20000 | TP | 120000 |
| 1202 | manisha | cto | 50000 | TP | 120000 |
| 1201 | gopal | manager | 50000 | TP | 120000 |
+-------+-----------+----------+---------+-------+---------+
本文介绍了窗口函数在SQL中的使用,对比了常规聚合函数与窗口函数的区别。窗口函数允许在聚合数据的同时保留原始行信息,例如在示例中展示了按部门分组计算工资总和,同时展示每个员工的详细信息。通过窗口函数,可以实现更复杂的数据分析和报表生成。
4665

被折叠的 条评论
为什么被折叠?



