mysql task5

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 练习题本笔记为阿里云天池龙珠计划SQL训练营的学习内容

本笔记为阿里云天池龙珠计划SQL训练营的学习内容

练习题

5.1

请说出针对本章中使用的product(商品)表执行如下 SELECT 语句所能得到的结果。

SELECT  product_id
       ,product_name
       ,sale_price
       ,MAX(sale_price) OVER (ORDER BY product_id) AS Current_max_price
  FROM product

按照 product_id 升序排列,计算出截⾄当前⾏的最⾼ sale_price


5.2

继续使用product表,计算出按照登记日期(regist_date)升序进行排列的各日期的销售单价(sale_price)的总额。排序是需要将登记日期为NULL 的“运动 T 恤”记录排在第 1 位(也就是将其看作比其他日期都早)

SELECT regist_date, product_name, sale_price,  SUM(sale_price) OVER (ORDER BY regist_date NULLS FIRST) AS current_sum_price  FROM Product;


5.3

思考题

① 窗口函数不指定PARTITION BY的效果是什么?

针对排序列进⾏全局排序

② 为什么说窗口函数只能在SELECT子句中使用?实际上,在ORDER BY 子句使用系统并不会报错。

本质上是因为 SQL 语句的执⾏顺序。

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

如果在 WHERE, GROUP BY, HAVING 使⽤了窗⼝函数,就是说提前进⾏了⼀次排序,排序之后再去除 记录、汇总、汇总过滤,第⼀次排序结果就是错误的,没有实际意义。⽽ ORDER BY 语句执⾏顺序在 SELECT 语句之后,⾃然是可以使⽤的

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
33
分享
相关文章
mysql task3
练习题 本笔记为阿里云天池龙珠计划mysql训练营的学习内容
234 0
mysql task6
练习题 本笔记为阿里云天池龙珠计划SQL训练营的学习内容
201 0
mysql task4
练习题 本笔记为阿里云天池龙珠计划SQL训练营的学习内容
117 0
mysql task1
练习题 本笔记为阿里云天池龙珠计划mysql训练营的学习内容
163 0
mysql task2
练习题 本笔记为阿里云天池龙珠计划mysql训练营的学习内容
178 0
Mysql源码学习——Thread Manager
一、前言     上篇的Connection Manager中,曾提及对于一个新到来的Connection,服务器会创建一个新的线程来处理这个连接。 其实没那么简单,为了提高系统效率,减少频繁创建线程和中止线程的系统消耗,Mysql使用了线程缓冲区的概念,即如果 一个连接断开,则并不销毁承载其的线程,而是将此线程放入线程缓冲区,并处于挂起状态,当下一个新的Connection到来 时,首先去线程缓冲区去查找是否有空闲的线程,如果有,则使用之,如果没有则新建线程。
1084 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等