作者jackghost (~~无相~~)
看板PHP
标题Re: [请益] 这样的统计要如何写?
时间Sun Mar 17 00:42:47 2013
提供另一个思考的方向
如果你只想知道近五日最低分数与人数
可以用这个方式
先捞出介於五天前至今日的资料
然後针对分数做一个群组,并且把分数最低的那个抓出来(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
1F:→ jami520:在实作功能时遇到这样瓶颈好几天,感谢提供思考方向 thx 03/17 06:51