MySQL小白入门05 - SQL高级处理

1. 窗口函数的概念和使用

什么是窗口函数?

  • 也称为OLAP函数(OnLine AnalyticalProcessing
  • 对数据库数据进行实时分析处理

常规的SELECT语句是对整张表查询,而窗口函数可有选择的对某一部分数据进行汇总、计算和排序。

窗口函数的通用形式?

<窗口函数> OVER ([PARTITION BY <列名>]
                     ORDER BY <排序用列名>)  

[ ]中的内容可以省略

  • PARTITON BY 用来分组,即选择要看哪个窗口,类似于 GROUP BY 子句的分组功能。但 PARTITION BY 子句并不具备 GROUP BY 子句的汇总功能,并不会改变原始表中记录的行数。
  • ORDER BY 用来排序,即决定窗口内,按某种规则(字段)排序

举个栗子:
在商品种类窗口内,按销售价格进行排序

SELECT  product_name, 
		product_type, 
		sale_price, 
		RANK() OVER (PARTITION BY product_type
						 ORDER BY sale_price) AS ranking
FROM product;

在这里插入图片描述

  • PARTITION BY 设定窗口对象范围(指定了product_type,即一个商品种类就是一个小的"窗口")
  • ORDER BY 按销售单价升序排列
    在这里插入图片描述

窗口函数的适用范围和注意事项

  • 原则上,只能在SELECT子句中使用。
  • 窗口函数OVER 中的ORDER BY 子句并不会影响最终结果的排序
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值