首页 > 数据库 >mysql——partition by

mysql——partition by

时间:2022-11-02 16:36:46浏览次数:45  
标签:张三 李四 mysql partition 50 Score 王五

参考:

https://www.cnblogs.com/xiaohuizhenyoucai/p/10636747.html

https://www.jianshu.com/p/785f0edac47f

 

partition  by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,

 

Demo 

数据库表结构 学生成绩表 UserGrade

Id        int              Checked     主键Id
Name   varchar(50) Checked     学生名
Course varchar(50) Checked     课程名
Score   int             Checked      分数

01、把每个人学生的成绩按照升序排名 (思路:根据学生姓名分组 根据每个人成绩排序)

select *,ROW_NUMBER() over( partition by Name order by Score )排名
from UserGrade

查询结果

Id Name Course Score 排名
1004 李四 数学 60 1
1005 李四 语文 80 2
1001 李四 英语 100 3
1007 王五 数学 30 1
1006 王五 语文 50 2
1003 王五 英语 50 3
1008 张三 英语 60 1
1000 张三 语文 80 2
1002 张三 数学 90 3

 

02、可以去掉order by(仅分区,分区内的值不排序)

 

03、可以将row_number换为rank(),这样当某个学生两科成绩相同时,则排名值相同

select *,RANK() over( partition by Name order by Score )排名
from UserGrade

查询结果

Id Name Course Score 排名
1004 李四 数学 60 1
1005 李四 语文 80 2
1001 李四 英语 100 3
1007 王五 数学 30 1
1006 王五 语文 50 2
1003 王五 英语 50 2
1008 张三 英语 60 1
1000 张三 语文 80 2
1002 张三 数学 90 3

标签:张三,李四,mysql,partition,50,Score,王五
From: https://www.cnblogs.com/hushuer/p/16851453.html

相关文章

  • MYSQL数据库之事务
    一、事务的ACID特性原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。一致性(Consistency):事务开始前和结束后,数据库的完整性约......
  • 解决Deprecated: mysql_connect(): The mysql extension is deprecated_F_hawk1
    解决方法1:禁止php报错display_errors=On改为display_errors=Offdisplay_errors=On改为display_errors......
  • mysql——left join on and和left join on where的区别
    参考https://www.cnblogs.com/cgsdg/p/16426658.html 总结:and条件语句不会剔除不满足条件的左表的行。where条件语句会剔除。   ......
  • Docker--mysql(centos)
    Docker--mysql当前启动systemctlstartdocker自启动systemctlenabledocker1.拉取mysql镜像dockerpullmysql:5.7其他版本参考dockerhub2.创建容器,并启动1.......
  • MySQL_外连接
    左/右外连接应用场景用于查询一个表中有,另一个表中没有的记录特点1外连接的查询结果为主表中的所有记录      如果从表中有和它匹配的,则显示匹配的值......
  • MySQL_连接查询_小结
    Sql92VSsql99功能      Sql99支持的较多可读性      Sql99实现连接条件和筛选条件的分离,可读性较高 #内连接SELECT<select_list>FROMAINNERJ......
  • MySQL__连接查询_sql99
    语法Select查询列表From表1别名【连接类型】Join表2别名On连接条件【Where筛选条件】【groupby分组】【having筛选条件】【orderby排序列表】内连接......
  • mysql 性能问题查找
    进程相关命令1.显示哪些线程正在运行:只列出前100条方法1showprocesslist;![](https://img2022.cnblogs.com/blog/2298258/202211/2298258-20221102113410395-37886337......
  • MySQL_连接查询_等值连接
    ·引例SELECTname,ageFROMstudents,teachersWHEREstudents.id=teachers.students_id; ·特点表的顺序:两个表的顺序可以调换可以加筛选:AND可以加分组:逗号隔......
  • MySQL_分组函数
    功能用作统计使用,又称为聚合函数或统计函数或组函数分类Sum求和Avg平均值Max最大值Min最小值Count计算个数特点1sum、avg一般用于处理数值型2以上分组函......