MySQL嵌套查询实例

问题:现有如下数据表,
用户表: Members(qqnumber,userid); 
充值表: Payment(payid,userid,paytime,amount); 
查询2012年各个月充值最多的用户的qqnumber,要求根据qqnumber进行汇总(提示:一个qqnumber可能会有多个游戏角色数据,多条充值记录;paytime为充值时间,),请写出SQL语句。
创建的表如下。
Members表

Payment表
查询语句如下:
方法一:
SELECT MAX( amount ) , t.qqnumber, t.MONTH  FROM (
SELECT   MONTH (   a . paytime   )   MONTH   ,   b . qqnumber ,   SUM (   a . amount   )   amount    FROM   payment   a ,   members   b
WHERE   a . userid   =   b . userid   AND   YEAR (   a . paytime   )   =   '2016'  GROUP   BY   b . qqnumber ,   MONTH 
)   AS   t   GROUP   BY   t . MONTH;
方法二:
SELECT MAX( amount ) , t.qqnumber, t.month FROM (
SELECT   MONTH (   p . paytime   )   AS   MONTH   ,   SUM (   p . amount   )   AS   amount ,   m . qqnumber   AS   qqnumber
FROM   Members   m   JOIN   Payment   p   ON   m . userid   =   p . userid
WHERE   YEAR (   p . paytime   )   = 2016  GROUP   BY   m . qqnumber ,   MONTH
)   AS   t   GROUP   BY   t . month;


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值