mysql查询排行榜_通过mysql查询排行榜

为什么80%的码农都做不了架构师?>>>

6936d1565ae689371725cdb5fc51c415.png

1、个人所在排行sql(单表简单排名)

SELECT

m.rank ,

m.user_id ,

m.weight

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

weight

FROM

t_pig_user ,

(SELECT @i := 0) AS it

ORDER BY

weight DESC ,

insert_time ASC

) m

WHERE

m.user_id = 444

2、排行榜前99名(单表简单排名)

SELECT

(@i :=@i + 1) rank ,

user_id ,

weight

FROM

t_pig_user ,

(SELECT @i := 0) AS it

ORDER BY

weight DESC ,

insert_time ASC

LIMIT 99

3、复杂个人排名

SELECT

n.rank ,

u.uid ,

n.user_id ,

n.stepsToall ,

n.today_praise AS praise ,

u.NICK_NAME ,

u.USER_PIC_PATH

FROM

(

SELECT

m.rank ,

m.user_id ,

m.steps + m.prop_steps AS stepsToall ,

m.today_praise

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

steps ,

prop_steps ,

today_praise

FROM

t_walk_user_step_today ,

(SELECT @i := 0) AS it

WHERE

today_date = #{todayTime}

ORDER BY

steps + prop_steps DESC ,

user_id ASC

) m

WHERE

m.user_id = #{userId}

) n

LEFT JOIN t_user u ON u.USER_ID = n.user_id

4、复杂排行

SELECT

m.rank ,

u.uid ,

m.user_id ,

m.stepsToall ,

u.NICK_NAME ,

u.USER_PIC_PATH ,

m.today_praise AS praise

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

steps + prop_steps AS stepsToall ,

today_praise

FROM

t_walk_user_step_today ,

(SELECT @i := 0) AS it

WHERE

today_date = #{todayTime}

AND steps + prop_steps > 0

ORDER BY

steps + prop_steps DESC ,

user_id ASC

LIMIT 99

) m

LEFT JOIN t_user u ON u.USER_ID = m.user_id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要查询班级平均分排行榜,首先需要使用MySQL语句进行查询。假设我们有一个名为班级成绩(class_score)的表,其中包含以下列:班级编号(class_id)、学生姓名(student_name)、成绩(score)。 我们首先需要使用GROUP BY子句按班级分组,并计算每个班级的平均分。MySQL语句如下: ``` SELECT class_id, AVG(score) AS average_score FROM class_score GROUP BY class_id ``` 以上语句会返回一个结果集,其中包含每个班级的平均分。为了按平均分降序排序,可以将结果集作为子查询,并使用ORDER BY进行排序。MySQL语句如下: ``` SELECT class_id, average_score FROM ( SELECT class_id, AVG(score) AS average_score FROM class_score GROUP BY class_id ) AS subquery ORDER BY average_score DESC ``` 以上语句会返回按平均分降序排列的班级编号和平均分,即班级平均分排行榜。 注意:以上语句假设班级编号是一个唯一标识,每个班级只有一个平均分。如果一个班级有多个平均分,可以根据实际情况进行修改。另外,需要根据实际的表结构进行调整,确保列名和表名正确。 ### 回答2: 要查询班级平均分排行榜,可以使用以下的MySQL查询语句: ``` SELECT class_name, AVG(score) AS average_score FROM scores GROUP BY class_name ORDER BY average_score DESC; ``` 上述语句中,假设我们有一张名为scores的表,其中包含了学生的分数信息,包括学生的班级(class_name)和分数(score)等字段。 该查询语句首先使用了AVG(score)函数来计算每个班级的平均分数,并将计算结果取别名为average_score。然后,使用GROUP BY子句按班级进行分组,以便能够计算每个班级的平均分数。最后,使用ORDER BY子句按照平均分数的降序排列,得到班级平均分排行榜。 执行以上查询语句后,将会输出一个包含班级名称和对应平均分数的结果集,其中平均分数最高的班级排在最前面,平均分数最低的班级排在最后面。 ### 回答3: 要查询班级平均分排行榜,首先需要有包含学生姓名、班级、科目和分数的数据表。可以创建一个名为"成绩"的数据表,其中包含以下字段:学生姓名、班级、科目和分数。 然后,可以使用SQL语句来查询班级平均分排行榜。以下是一个示例查询语句: SELECT 班级, AVG(分数) AS 平均分 FROM 成绩 GROUP BY 班级 ORDER BY 平均分 DESC; 这个查询语句使用了AVG函数来计算每个班级的平均分数,并按平均分数的降序排列结果。 我们可以将该语句解释如下:首先,使用SELECT关键字选择需要查询的字段,这里是班级和平均分。然后,使用AVG函数来计算每个班级的平均分数。接下来,使用GROUP BY子句按班级进行分组,以便计算每个班级的平均分。最后,使用ORDER BY子句按平均分数的降序进行排序,以生成排行榜。 执行此查询语句后,将返回一个结果集,其中包含每个班级的班级名称和平均分数。你可以根据平均分数的高低来确定排名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值