SQL学习打卡Task5

本文介绍了阿里云天池龙珠计划中的SQL训练内容,特别是窗口函数的应用。讨论了如何使用窗口函数进行排序,如练习5.1和5.2所示,以及不使用PARTITIONBY时的全局排序概念。同时,解释了SQL语句的执行顺序,强调了在WHERE,GROUPBY,HAVING子句中使用窗口函数的潜在问题,指出ORDERBY在SELECT之后执行,因此可以正确使用。
摘要由CSDN通过智能技术生成

本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql

本次学习的内容为:窗口函数

练习5.1
按照product_id升序排列,计算出截止当前行的最高是sale_price

练习5.2
SELECT product_type,regist_date,sale_price,
SUM(sale_price) OVER (ORDER BY COALESCE(regist_date,
CAST('0001-01-01' as DATE))) as current_sum_price
FROM product;

练习5.3
1.窗口函数不使用PARTITION BY 就是针对排序列进行全局排序。
2.本质上是因为sql语句的执行顺序:
FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY
如果在WHERE,GROUP BY,HAVING 使用了窗口函数,就是说提前进行了一次排序,排序之后再去除记录、汇总、汇总过滤,第一次排序结果就是错误的,没有实际意义。而ORDER BY语句的执行顺序在SELECT语句之后,自然是可以使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值