doudi8298 2015-08-23 09:33
浏览 42
已采纳

mySQL查询:按组点的顺序按连接成员点的总和排序

I got 2 tables which are linked. GROUPS can have multiple USERS and USERS can be in multiple GROUPS.

GROUPS
|id| name      |
----------------
|1|  Koalas    | 
|2|  Grizzlies  | 
|3|  Hornets    |
----------------

USERS
|id| firstName |  points  |
----------------
|1|    Bob     |  2
|2|    Hans    |  4
|3|    Jerome  |  1
|4|    Katy    |  6
----------------

GROUP_USER
|id| group_id  | user_id  |
--------------------------
|1|  1         |  2
|2|  1         |  4
|3|  2         |  1
|4|  2         |  2
|5|  3         |  3
|6|  3         |  4
----------------

Now I want to rank the groups by the points of their members. Result:

GROUP_USER
|rank| group_name  | user_points  |
-----------------------------------
|1   |  Koalas     |  10
|2   |  Hornets    |  7 
|3   |  Grizzlies  |  6

Don´t really know how to start.

  • 写回答

1条回答 默认 最新

  • dongmei8460 2015-08-23 09:38
    关注
    select @rank := @rank + 1 as rank, name, user_points
    from
    (
      select g.name, 
           sum(u.points) as user_points
      from groups g
      left join group_user gu on gu.group_id = g.id
      left join users u on gu.user_id = u.id
      group by g.name
      order by user_points desc
    ) tmp
    cross join (select @rank := 0) r
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目