MySQL中实现Oracle里面 rank()over ( PARTITION BY ORDER BY) 分类分组功能
16lz
2021-01-22
各班级学生成绩测试表select * from TMP_A;
实现目的: 按照班级分类后按照分数倒序排序
采用mysql变量简单实现,SQL如下:
SELECT a.stu_id,a.point,
IF( @className = a.class_name,@rank := @rank + 1,@rank :=1 ) AS rank,
(@className := a.class_name) class_name
FROM TMP_A a, ( select @rank :=0,@className := NULL ) b
ORDER BY a.class_name, a.point DESC ;
最终展示结果如下:
更多相关文章
- PLSQL并非所有变量都已绑定
- 返回没有匹配条目的所有日期
- Android Studio 和 SDK 下载、安装和环境变量配置
- Eclipse Java:根据构建配置定义最终变量
- Android Studio 项目的导入以及依赖
- 在string.xml中调用变量[重复]
- 增强的for循环中局部变量的范围
- 抽象批处理SFTP多目的地和自动重试
- JAVA-全局变量与局部变量-继承-封装-(是三节哦!今天的有点多)