当前位置:网站首页>MySQL窗口函数 OVER()函数介绍
MySQL窗口函数 OVER()函数介绍
2022-08-03 16:02:00 【飞Link】
前期准备的数据
# 创建数据库
create database if not exists shopping charset utf8;
# 选择数据库
use shopping;
# 创建产品表
create table product
(
id int primary key,
name varchar(20),
price int,
type varchar(20),
address varchar(20)
);
# 插入产品数据
insert into shopping.product(id, name, price, type, address) values
(1,'商品1',200,'type1','北京'),
(2,'商品2',400,'type2','上海'),
(3,'商品3',600,'type3','深圳'),
(4,'商品4',800,'type1','南京'),
(5,'商品5',1000,'type2','成都'),
(6,'商品6',1200,'type3','武汉'),
(7,'商品7',1400,'type1','黑龙江'),
(8,'商品8',1600,'type2','黑河'),
(9,'商品9',1800,'type3','贵州'),
(10,'商品10',2000,'type1','南宁');
一、描述
OVER()的意思就是所有的数据都在窗口中
二、实例
OVER() 意思是所有的数据都在窗口中
# 计算所有商品的平均价格
select *,avg(price) over () from product;
OVER()用于将当前行与一个聚合值进行比较
# 计算商品价格与平均价格之差
select *,price-avg(price) over () from product;
OVER()和COUNT()组合
# 计算所有商品数量
select *,count(id) over() from product;
一句SQL中使用两个窗口函数
# 在商品表的基础上,添加平均价格和总金额两列
select *,avg(price) over (),sum(price) over () from product;
窗口函数和where一起使用
# 计算type1类型和type2类型的平均价格
select
*, avg(price) over()
from product
where type in ('type1','type2');
在过滤条件中不能使用OVER()
# 查询所有商品中,价格高于平均价格的商品(报错)
select
*,
avg(price) over()
from product
where price > avg(price) over();
# 查询所有商品中,价格高于平均价格的商品
select
*,
avg(price) over()
from product
where price > (select avg(price) from product);
边栏推荐
- 1、实例开启无锁表结构变更以后,在任务编排中通过“单实例SQL”节点进行的结构变更,是优先采用无锁表
- socket快速理解
- Detailed explanation of ReentrantReadWriteLock
- Basic knowledge points in js - events
- JD6606SP5_JD6606SSP_JD6606SASP_JD6621W7百盛新纪元授权代理商
- I am doing open source in Didi
- 土耳其国防部:联合协调中心将对首艘乌克兰粮船进行安全检查
- 如何使用MATLAB绘制极坐标堆叠柱状图
- Why do I strongly recommend using smart async?
- GTK实现旋转加载动画
猜你喜欢
随机推荐
我在滴滴做开源
【Unity入门计划】基本概念(8)-瓦片地图 TileMap 02
Yii2安装遇到Loading composer repositories with package information
DC-DC 2C (40W/30W) JD6606SX2 power back application
一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
想进阿里?先来搞懂一下分布式事务
CopyOnWriteArrayList详解
Interpretation of the 2021 Cost of Data Breach Report
CS免杀姿势
为什么我强烈推荐使用智能化async?
ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
Detailed ReentrantLock
在 360 度绩效评估中应该问的 20 个问题
mysql delete execution error: You can't specify target table 'doctor_info' for update in FROM clause
Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 安装 kubeadm
1、实例开启无锁表结构变更以后,在任务编排中通过“单实例SQL”节点进行的结构变更,是优先采用无锁表
How to get the 2 d space prior to ViT?UMA & Hong Kong institute of technology & ali SP - ViT, study for visual Transformer 2 d space prior knowledge!.
leetcode: 899. Ordered Queue [Thinking Question]
[Unity Getting Started Plan] Basic Concepts (8) - Tile Map TileMap 02
请问下阿里云全托管flink能执行两条flink sql命令么?