我的一位客户是高尔夫球场。他们每隔几周就会提出一个新的统计数据,他们希望在各种报告中提供各种轮次并涵盖所有轮次。
例如,在距离不足10英尺时尝试推杆的百分比与错过的比率。
一些参数:
我目前的做法是在需要新的统计数据时向洞/圆/终身统计表添加字段,并在每次保存回合时计算统计数据。
问题是在某些时候我们可能会超过mySQL的最大行大小65535字节。
所以,问题是:
答案 0 :(得分:0)
如果您在date
,hole
,user
和round
字段上有索引,则应该花很少的时间来计算最新统计信息。
SELECT s.*
, 1 - perc_missed as perc_hit
FROM (
SELECT IFNULL(putts_missed / total_putts,1) as perc_missed
,player
,hole
FROM golf_stats gs
WHERE gs.playdate BETWEEN '2011-01-01' AND '2011-02-01'
GROUP BY gs.player, gs.hole ) AS s;