mysql over()

编程入门 行业动态 更新时间:2024-10-08 08:28:30

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=mysql over()"/>

mysql over()

其实对于大部分学过同学来讲呢,sum() group by 算是老朋友了,作用就是利用sum()的聚合作用来统计具有某些共同特性的值的和,比如对于sum(考试分数) 来讲可以group by学号,班级,课程之类的。但是除此之外其实还有一个写法就是sum() over(partition),partiotion在英文单词中也有分类的意思,接下来先让我们建立一个表格:

### 创建表格

create table test(organization varchar(20),

ranking varchar(20),

number varchar(20));

### 插入数据

insert into test

values(1,1,1),(2,1,2),(3,1,3),(1,2,3),

(1,3,4),(2,3,6),(3,3,5),(1,2,3),

(2,2,5),(3,2,3),(2,2,5),(3,2,3);test表

我们先来看一下用sum() group by的话会返回什么样的结果,uhhhh,虽然大家心里可能都已经有b数了

select organization,sum(number) from test group by organization;大家好我是group by生的

再来看看用sum() over(partition)会返回什么样的结果

select organization,sum(number) over(partition by organization) as sum_num from test;大家好我是over(partition)生的

区别我就不讲了吧,如果看表格都看不出来,我建议你们去看眼科。

当然啦如果只讲到这里那这个帖子也有点太水了,下面我们就来拓展一下sum() over()另外一个拓展用法就是sum() over(partition...order by...),下面让我们看看这段查询代码:

select organization,ranking,number,sum(number) over(partition by organization order by ranking) as sum_num from test;大家好我是over(partition和order)一起生的

over(partition by)只是单纯的将同一个分类里的数值相加,但是如果后面跟上order by或者order by desc的话,前面的sum()值便会在同一个组内按照排名进行数值累加,百文不如一图

select organization,ranking,number,sum(number) over(partition by organization order by ranking) as sum_num from test;

配上代码这样看是不是会好很多哈哈哈哈,当然啦你们要是有什么补充或者不同意见也可以跟我说说,相互学习~

更多推荐

mysql over()

本文发布于:2024-03-10 15:19:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!