一道比较实用的MySQL面试题:游戏数据充值查询
生活随笔
收集整理的這篇文章主要介紹了
一道比较实用的MySQL面试题:游戏数据充值查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目如下, 有兩個數據表分表是, 用戶表:?Members(qqnumber,userid);? 充值表: ? Payment(payid,userid,paytime,amount);? 查詢2012年各個月充值最多的用戶的qqnumber,要求根據qqnumber進行匯總(提示:一個qqnumber可能會有多條充值記錄;paytime為充值時間,amount為充值金額),請寫出SQL語句 。 首先創建兩個表: 然后創建存儲過程,往數據表里面插入測試數據: 方法一: 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?)?=?'2012'?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?)?=2012?GROUP?BY?m.qqnumber,?MONTH )?AS?t?GROUP?BY?t.month; 最后查詢到的結果如下: 本文為作者原創,轉載請注明出處,不對之處歡迎指正,請留言!
WHERE?a.userid?=?b.userid ?AND?YEAR(?a.paytime?)?=?'2012'?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?)?=2012?GROUP?BY?m.qqnumber,?MONTH )?AS?t?GROUP?BY?t.month; 最后查詢到的結果如下: 本文為作者原創,轉載請注明出處,不對之處歡迎指正,請留言!
轉載于:https://www.cnblogs.com/meiguanxi/p/6114166.html
總結
以上是生活随笔為你收集整理的一道比较实用的MySQL面试题:游戏数据充值查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何注册域名-买服务器-备案-建设网站
- 下一篇: 安装和配置SQL Server 2016