`

mysql 中根据查询结果排名

 
阅读更多

 

参考:https://blog.csdn.net/t2080305/article/details/82223415

 

table:

CREATE TABLE `t_rakeback_stat` (

  `USER_ID` varchar(10) NOT NULL COMMENT '邀请人(自己)用户ID',

  `USER_NAME` varchar(32) NOT NULL COMMENT '用户名',

  `FRIEND_NUM` int(6) NOT NULL COMMENT '好友数量',

  `RAKEBACK_AMOUNT_TOTAL` decimal(20,8) NOT NULL COMMENT '返佣收益总数量',

  `RAKEBACK_AMOUNT_REMAIN` decimal(20,8) NOT NULL COMMENT '返佣收益剩余数量',

  `RAKEBACK_COIN_CODE` tinyint(4) NOT NULL COMMENT '返佣金额币种',

  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',

  `UPDATE_TIME` datetime NOT NULL COMMENT '更新时间',

  PRIMARY KEY (`USER_ID`),

  KEY `idx_rank` (`RAKEBACK_AMOUNT_TOTAL`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='邀请返佣统计表';

 

排行榜列表

SELECT
		    temp.userId,
		    temp.userName,
                    temp.rakebackAmountTotal,
		    temp.rank
	    FROM
		    (
		        SELECT
		            ta.user_id AS userId,
                            ta.user_name AS userName,
                            ta.rakeback_amount_total AS rakebackAmountTotal,
		            @index := @index + 1,
		            @rank := (CASE
				WHEN @temp_rakeback_amount_total = ta.rakeback_amount_total THEN @rank
				WHEN @temp_rakeback_amount_total := ta.rakeback_amount_total THEN @index
				WHEN @temp_rakeback_amount_total = 0 OR @temp_rakeback_amount_total IS NULL THEN @index
				END) AS rank
		        FROM
		        (
			    SELECT 
		              	user_id,
				user_name,
		              	rakeback_amount_total 
		            FROM
				t_rakeback_stat 
		          ORDER BY 
				rakeback_amount_total DESC
		        ) AS ta,
		        ( SELECT @rank := 0, @rowtotal := NULL, @index := 0 ) r
		    ) AS temp

 

分享到:
评论

相关推荐

    MySql高级Sql查询

    5. **集合操作**:UNION和INTERSECT用于合并或找出多个查询结果的交集。UNION ALL会包含所有不重复的行,而INTERSECT只保留共同的行。 6. **存储过程**:存储过程是一组预编译的SQL语句,可以封装成一个命名的单元...

    MySQL中给自定义的字段查询结果添加排名的方法

    在MySQL数据库中,有时我们需要对查询结果进行排名,特别是在处理数据分组或分析时,这样的需求尤为常见。本文将详细讲解如何在MySQL中为自定义字段的查询结果添加排名。 首先,我们需要理解基本的SQL查询语法。在...

    PHP+MYSQL中学成绩查询分析系统

    查询结果以表格形式展示,便于用户理解和比较。 4. 成绩分析:除了查询,系统还提供了成绩分析功能,可能包括平均分计算、排名展示、成绩分布统计等。这些分析可以帮助教师识别学生的学习瓶颈,家长了解孩子的学习...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    6、合并查询结果 7、为表和字段取别名 8、使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: [sql] view plain copy create table STUDENT( STU_ID int primary KEY, STU_NAME char(10) not null, ...

    MySQL常用练手题目集合 MySQL查询练习题(50题) 共18页.pdf

    MySQL查询练习题旨在帮助用户熟悉和提升SQL查询技巧,涵盖了多方面的数据库操作,如联接查询、聚合函数、条件查询、子查询等。以下是对这些题目的详细解析: 1. **建表**: - 学生表:可能包含学生ID、姓名、性别...

    Mysql数据库第三章高级查询上机练习.zip

    7. **分组和排序(ORDER BY)**:ORDER BY用于对查询结果进行排序,可指定升序(ASC)或降序(DESC)。 在"第三章上机练习.sql"文件中,你可能会遇到这些问题的实例,通过实际操作来提高你的SQL技能。可能的练习...

    php+mysql学生成绩查询(系统).zip

    5. **前端界面**:使用HTML、CSS和JavaScript构建用户界面,使用户可以输入查询条件(如学生ID、课程名)并显示查询结果。JavaScript可能用于表单验证和页面动态更新,提供更好的用户体验。 6. **查询操作**:系统...

    mysql-server-mysql-8.3.0.tar.gz

    3. **窗口函数**:这是MySQL 8.0引入的新特性,允许在查询中执行复杂的计算,如排名、累计和分组,而无需使用子查询或自连接。 4. **JSON支持**:MySQL 8.x增强了对JSON数据类型的支持,提供了更丰富的JSON操作函数...

    php+mysql学生成绩查询系统

    6. 将生成的HTML页面发送回给浏览器,用户即可看到查询结果。 系统的功能健全,这意味着它可能包含了以下常见模块: 1. 登录注册:用户(可能是教师或学生)需要登录才能访问系统,这涉及到用户验证和权限控制。 2...

    mysql 计算字符串相似度

    本文将详细介绍如何在 MySQL 中创建一个自定义函数 `sfn_GetSimilar_Rate` 来计算两个中文字符串的相似度,并基于此相似度进行排序。 #### 函数设计与实现 本节将详细介绍 `sfn_GetSimilar_Rate` 函数的设计与实现...

    mysql官方绿色安装包32位 mysql-5.7.36-win32

    9. **窗口函数**:允许在结果集上进行复杂的分析操作,如计算行数、排名或移动平均。 10. **增强的性能 Schema**:提供了更详尽的性能监控和分析工具,帮助管理员优化数据库性能。 11. **分区表**:允许将大表分成...

    mysql查询语句汇总

    MySQL查询语句是数据库管理中不可或缺的部分,它用于检索、更新、删除和操作数据库中的数据。本汇总将全面介绍MySQL中的基本查询语法以及高级查询技巧。 1. **基础查询** - **SELECT语句**: 用于从表中选择数据。...

    MYSQL实现排名及查询指定用户排名功能(并列排名功能)实例代码

    在并列排名中,相同得分的用户应获得相同的排名。为此,我们需要引入一个新的变量`@rowtotal`,来跟踪当前处理的得分。如果当前得分与之前记录的得分相同,那么排名保持不变;否则,排名增加1。这可以通过`CASE`语句...

    31-视频32MySQL高级查询

    聚合函数是MySQL查询中的另一个重要工具,如COUNT()、SUM()、AVG()、MAX()和MIN()。它们用于对一组值进行计算,如计算总和、平均值、最大值或最小值。在统计分析和报表生成中,这些函数非常常见。例如,你可以使用...

    php+mysql学生成绩查询(系统).rar

    在这个系统中,PHP可能被用来接收用户输入的查询请求,与MySQL数据库进行交互,然后返回查询结果并显示在网页上。 【MySQL】是一种关系型数据库管理系统(RDBMS),以其高效、稳定和开源的特点,在Web应用程序中...

    MySQL数据库 mysql-8.0.11-winx64.zip

    - 自定义配置文件:压缩包中的"mysql8.0安装.txt"可能包含了自定义安装步骤,允许用户根据自己的需求调整配置,如设置端口、数据目录、初始化数据库大小等。 - 密码设置:通常在安装过程中会提示设置root用户的...

    php+mysql学生成绩查询系统(源代码).zip

    2. 成绩查询:用户输入查询条件(如学号、姓名或课程名),PHP根据这些条件向MySQL发送SQL查询,获取相关成绩信息。 3. 数据显示:PHP将从数据库获取的数据格式化,渲染成用户友好的网页形式展示。 4. 安全防护:PHP...

    (mysql面试题)MySQL中的优化技巧,如查询优化、索引优化及代码展示.txt

    GROUP BY 和 ORDER BY 是常见的SQL操作,用于对查询结果进行分组和排序。正确使用这些操作可以显著提升查询效率。例如,在需要对学生成绩进行统计分析时,我们可以先通过索引对数据进行预排序,然后再使用GROUP BY或...

Global site tag (gtag.js) - Google Analytics