Re: [請益] 這樣的統計要如何寫?

看板PHP作者 (~~無相~~)時間11年前 (2013/03/17 00:42), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
提供另一個思考的方向 如果你只想知道近五日最低分數與人數 可以用這個方式 先撈出介於五天前至今日的資料 然後針對分數做一個群組,並且把分數最低的那個抓出來(LIMIT 1) 如此一來可以得掉最近五天的最低分數與人數 若是想知道是哪些人是符合條件,可以利用這個結果當作一個SUB QUERY,以分數當key 去和最近五天的資料互串就可以得知了~ SELECT grade, count( * ) FROM db1 WHERE gdate BETWEEN DATE_SUB( now( ) , INTERVAL 5 DAY) AND NOW( ) GROUP BY grade ORDER BY grade ASC LIMIT 1 ※ 引述《jami520 (我的生命因你而發光)》之銘言: : 目前我有的資料表db1 : 姓名name 分數grade 日期gdate : 每天都會有許多學員的分數資料 : 若現在我想做每天學員的分數是否為近五日新低的人數統計 : 舉例學員有十人 於3/1某A, 某B 這二人當日分數為從2/24-3/1的最低分數 : 那麼3/1統計的人數則為2 : 3/2若是某B, 某D, 某E這三人當日分數為2/25-3/2的最低分數 : 那麼3/2統計人數則為3 : 這樣如此就會有每天分數新低的人數統計資料了 : 那麼這樣SQL寫法要如何寫呢? : 我有想到比較笨的方式,就是載出要統計區間的所有資料 : 然後用跑回圈個別紀錄學員每天的分數丟到陣列中 : 後續再針對每位學員的陣列再跑回圈來研判 : 不知道是否有辦法直接在SQL中就可以達到目的呢? : 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.252.84

03/17 06:51, , 1F
在實作功能時遇到這樣瓶頸好幾天,感謝提供思考方向 thx
03/17 06:51, 1F
文章代碼(AID): #1HHA4AFc (PHP)
文章代碼(AID): #1HHA4AFc (PHP)