Mysql语句处理排序的两种方式
来源:互联网 发布:上海宏知检测 编辑:程序博客网 时间:2024/06/10 02:21
假设有张student表,记录了全级所有班级的所有学生的总成绩 字段 class_id,score,name
第一种:利用了两层子查询的方式,首先在最外层查询所有列,在里层查询当前列的,班级相等,且分数大于当前列的数量当作排名。
select *, ( select count(distinct score) from student s2 where s2.score >= s1.score and s1.class_id = s2.class_id) as rank from student s1
第二种:利用了两层子查询和变量,中心思想是,首先对所有列根据班级和分数排序,然后在每个班级中对所有分数累加标记数当作排名。
在最里层首先对班级和分数进行排序,并赋值变量,外层如果班级相等,则rank变量+1,classId变量赋值为当前行的班级id
select s3.*, if(@classId=s3.class_id, @rank:=@rank+1, @rank=1), @classId:=s3.class_idfrom ( select s1.* from student s1,( select @classId:=null, @rank:=0 ) s2 order by s1.class_id, s1.score ) s3
阅读全文
0 0
- Mysql语句处理排序的两种方式
- sql语句子查询中的两种排序方式
- 两种排序方式
- get方式乱码的处理方式的两种方式
- HashMap的两种排序方式
- List排序的两种简便方式
- HashMap的两种排序方式
- 数组排序的两种方式
- [Java]HashMap的两种排序方式
- [Java]HashMap的两种排序方式
- hashmap的两种排序方式
- Java_HashMap的两种排序方式
- HashMap的两种排序方式
- HashMap的两种排序方式
- HashMap的两种排序方式
- HashMap的两种排序方式
- HashMap的两种排序方式
- 【转载】HashMap的两种排序方式
- Codevs 2370 小机房的树
- UIScrollView跨屏截图
- HTML 块级元素行内元素
- Rxjava
- tomcat启动错误:严重: Error initializing endpoint java.lang.Exception: Socket bind failed: [730048] ???????
- Mysql语句处理排序的两种方式
- java 大小写转换
- Machine Learning in Action
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
- 第十一周项目四(2)利用遍历思想求解图问题
- jdk1.8 date日期的处理(一)
- 如何查看Python 安装位置以及已经安装的库
- IScroll的那些事——内容不足时下拉刷新
- php概念总结