duanhui1185 2014-03-12 14:07
浏览 35
已采纳

想要显示每月分组的最高得分者详细信息

i have a table of data DB table look like

   id   |   name   |  userid  |  score   |      date      |
   ------------------------------------------------------------
    1   |   john   |    4     |   233    |  2014-02-02 
    2   |   mary   |    5     |  1256    |  2013-02-05  
    3   |   john   |    6     |   100    |  2013-03-08 
    4   |   elvis  |    7     |   123    |  2013-03-04 
    5   |   john   |    2     |   1234   |  2013-03-02

now i want to show one highest scorer details of every month.my retrieve data output will be json format

currently my query output show

"monthly_winners":[
    {
        "id":"1",
        "score":"233",
        "month":"Feb"
    },
    {
        "id":"3",
        "score":"100",
        "month":"Mar"
    }
],

But It will be

"monthly_winners":[
    {
        "id":"2",
        "score":"1256",
        "month":"Feb"
    },
    {
        "id":"5",
        "score":"1234",
        "month":"Mar"
    }
],

i cant understand whats wrong in my query

my query is

SELECT id,score, DATE_FORMAT(`date`,'%b' ) AS month FROM `winner`  GROUP BY month ORDER BY score DESC
  • 写回答

2条回答 默认 最新

  • douqian1835 2014-03-12 14:21
    关注
    SELECT x.*
      FROM my_table x
      JOIN 
         ( SELECT DATE_FORMAT(date,'%Y%m')yearmonth
                , MAX(score) max_score 
             FROM my_table 
            GROUP 
               BY DATE_FORMAT(date,'%Y%m')
         ) y
        ON y.yearmonth = DATE_FORMAT(x.date,'%Y%m')
       AND y.max_score = x.score;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)