请选择 进入手机版 | 继续访问电脑版
楼主: 我是小趴菜
193 0

[数据挖掘新闻] mysql学习35--开窗函数之mysql开窗函数默认情况 [推广有奖]

  • 0关注
  • 4粉丝

编辑管理员

教授

32%

还不是VIP/贵宾

-

威望
0
论坛币
39445 个
通用积分
380.1820
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7030 点
帖子
658
精华
0
在线时间
36 小时
注册时间
2022-8-30
最后登录
2023-3-22

我是小趴菜 发表于 2023-3-16 15:35:54 |显示全部楼层

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

#开窗函数默认情况:

##1,当over中没有指定分区、排序和滑动窗口范围时,表中所有记录为一个区,默认计算分区内的所有记录

select *,sum(amount) over() as 订单总金额 from order_tab;

select *,sum(amount) as 订单总金额 from order_tab;

##2,当over中指定了分区,但是没有指定排序和滑动窗口范围时,默认计算当前分区内的所有记录

select *,sum(amount) over(partition by user_no) as 订单总金额 from order_tab;

select *,sum(amount) over (partition by user_no) as 订单总金额 from order_tab;

select * from order_tab;

##3,当over中指定了分区,排序,但是没有指定滑动窗口范围时,默认基于排序字段值范围来计算(当前分区内的第一行到当前行(排序字段)取值范围内的记录)

select user_no, create_date,sum(amount) over (partition by user_no order by create_date ) as 累计金额 from order_tab;

select user_no,create_date, sum(amount) from order_tab group by create_date, user_no order by create_date;

##4 ,指定分区,排序, 带上滑动窗口范围.

##例如:计算当日及前后日金额总和

select user_no, create_date ,sum(amount)

over(partition by user_no order by create_date range between interval 1 day preceding and interval 1 day following )

as 当前日及前后日金额总和

from order_tab;



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MySQL sql partition following Interval

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2023-3-24 15:05