数据库 mysql表pic(pic_is,user_id,comment_num,praise_num,browser_num,hot_status)hot_status 为图片状态(1,2,3),其中3表示是热图。
我想查出用户id(去重)列表,并且是按这个计算权重的倒序排序,
计算公式:comment_num*2+praise_num+browser_num*0.2+热图数*3就是说按某个用户的所有图片的评论总数*2加上他的所有图片的赞数,加上他的所有图片的浏览数*0.2,再加上他的所有热图数*3,按这个计算出来的值倒序排序……不知道我说的明白不。在线,等高手回答,,,,,跪求……

解决方案 »

  1.   

    select *
    from (
    select userid,sum(comment_num)*2+sum(praise_num)+sum(browser_num)*0.2+sum(热图数)*3 as quanzhong
    from tb
    group by user_id
    ) D
    order by quanzhong desc
    limit 10;
      

  2.   

    select user_id, sum(comment_num*2+praise_num+browser_num*0.2+热图数*3)
    form pic
    group by user_id
    order by 2 desc
      

  3.   

    是不是
    sum(热图数) = select count(*) from TB where user_id = "xxx"  ?
      

  4.   

    贴建表及插入记录的SQL,及要求结果出来看看
    select userid,sum(comment_num)*2+sum(praise_num)+sum(browser_num)*0.2+sum(热图数)*3 as quanzhong
    from tb
    group by user_id order by 2 desc
      

  5.   

    SELECT  userid,SUM(comment_num)*2+SUM(praise_num)+SUM(browser_num)*0.2+SUM(热图数)*3 as quanzhong
    FROM  tb
    GROUP BY  user_id ORDER BY  2 DESC;
      

  6.   

    select userid,sum(comment_num)*2+sum(praise_num)+sum(browser_num)*0.2+
    sum(if(hot_status=3,1,0))*3 as quanzhong
    from tb
    group by user_id order by 2 desc
      

  7.   


    sum(if(hot_status=3,1,0))*3
    ,就是了~~~