关于SQL的排序,和统计引发的问题

2020-03-04  本文已影响0人  vincent_wujia

要求:现有三张表xty_room_rank 房间排名表、xty_user_info用户信息表、xty_user_lev用户等级表
按时段查询用户表中的数据并排名,显示名次 如图A-1


A-1

图A-1没有名次,需要加上名次
这是代码

SELECT
    a.sun_value,-- 用户贡献值
    a.userid,-- 用户id
    a.rankid,-- 房间id
    xui.nickname,-- 用户昵称
    xui.experiences,-- 用户经验值
    xui.wx_head,-- 用户头像
    xul.lev,-- 用户等级
    xul.upload,-- 等级图标
    xul.`name` -- 等级名称
FROM
    (
    SELECT
        rankid,
        roomid,
        userid,
        SUM(devote_value) as sun_value
        
    FROM
        xty_room_rank xrr
    WHERE
        xrr.roomid = 1
        AND xrr.begintime >= 1583251200000 
        AND xrr.begintime < 1583337600000 
    GROUP BY
        userid 
        LIMIT 0,
        100 
    ) a
    INNER JOIN xty_user_info xui ON a.userid = xui.userid
    JOIN xty_user_lev xul ON xul.experience_begin <= xui.experiences AND xul.experience_end > xui.experiences
    ORDER BY
        a.sun_value DESC 

这个sql是不全面的,需要修正,由实际业务需求改,个人觉得这个问题对sql不熟悉的同学可能会挺麻烦的
详细的表+sql 暂时还是私聊我,萌新git不熟悉

上一篇下一篇

猜你喜欢

热点阅读