每天一道SQL题之day01

本文介绍了一道SQL题目,要求统计MySQL表tblog_pay中累充超过1w的玩家,按充值金额降序展示前10名的玩家ID、累充总额和最后充值时间。解题关键包括使用GROUPBY,SUM和MAX函数,以及ORDERBY和LIMIT子句。
摘要由CSDN通过智能技术生成

每天一道SQL题

每天一道SQL题之day01


1、题目:

MySQL有一张名为tblog_pay的表,记录了玩家在游戏中的每笔充值记录,表中字段如下:

  • 订单ID(order_id,主键唯一)
  • 玩家ID(role_id)
  • 充值金额(pay_money)
  • 充值时间(pay_time,UNIX时间戳,普通索引)

请完成下列需求:

统计累充大于1w的玩家名单,按充值金额从高到底展示前10名的玩家id、累充金额、最后充值时间?

2、题解

SELECT role_id,SUM(pay_money) as tatal_pay,MAX(pay_time) as last_pay_time
FROM tblog_pay
GROUP BY role_id
HAVING total_pay > 10000
ORDER BY total_pay DESC
LIMIT 10;

3、解析

按需求可知道,按充值金额,故需要考虑到排序 ORDER BY 、
前10名 需要一个限制,取前10 Limit、累计大于考虑到使用SUM函数、最后充值时间即最大的时间,考虑MAX函数。
注意点:聚合函数中不能使用where子句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值