Mysql的数据分组

该博客探讨了如何使用Mysql的分组功能处理玩家分数排行榜的统计问题。在确保每个玩家只出现在排行榜一次的情况下,通过数据分组与聚集函数结合,实现了对游戏日志记录的去重和排序,从而得出前五名玩家的排行榜。
摘要由CSDN通过智能技术生成

任务需求

要统计玩家的分数排行榜,但是同一个玩家只能在排行榜中出现一次,因此需要去重处理。

解决方案

目前的设计是有一个PlayLog表,每一次用户游戏结束之后在PlayLog表中增加一条记录,设计如下

type PlayLog struct {
    Id        int64
    User      *User `orm:"rel(fk)"`
    StartTime time.Time
    Duration  int64 `orm:"null"`
    Score     int64
}

由于每个玩家可能玩多次游戏,因此可能会有多次记录,所以需要查重,搜索一下有没有解决方案,在Mysql必知必会一书中第12章第13章所述,可以通过数据分组的方法来解决重复的问题

分组(group by)可以把根据条件把表内容的子集方便的汇总起来,例如:在上面的例子中有15条记录,分别是7个玩家的游戏日志记录

id user_id score
1 2 100
2 1 200
3 2 10
4 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值