场景:
我有一个名为gamesstats
的游戏统计表。
我得到了一支球队(对我来说,重要的是身份证)、联赛和赛季。
现在,我可以使用我的比赛统计数据来检查球队打了什么比赛,只询问联赛和赛季的情况,主队id或客队id就是我得到的球队id。
从中,我可以获得该队参加的比赛,并通过HomeStat
和VisitorStat
分别询问该主队或客队的本场比赛统计数据。然后我对他们进行平均,并了解这支球队的情况。
现在的问题是:
我该如何构建这三个数组:一个用于球队平均数的数组(简单,完成),一个用于联盟平均数的阵列(简单,只是不要限制球队id),以及一个用于在联盟中球队处于该特定参数的#的数组(比如在投2分时,它在联盟中排名第四(按所有球队的平均数))。
一点sql,让您了解它的外观:
SELECT "All Games" as Flag, count(*) as Games, avg(s.P2M) as P2M, avg(s.P2A) as P2A, 100*avg(s.P2M)/avg(s.P2A) as P2P,
avg(s.P3M) as P3M, avg(s.P3A) as P3A, 100*avg(s.P3M)/avg(s.P3A) as P3P,
avg(s.FTM) as FTM, avg(s.FTA) as FTA, 100*avg(s.FTM)/avg(s.FTA) as FTP,
avg(s.OFFENSE) as OFFENSE, avg(s.DEF) as DEF, avg(s.TOT) as TOT,
avg(s.AST) as AST, avg(s.TO) as TurnO, avg(s.ST) as ST, avg(s.FV) as FV, avg(s.CM) as CM, avg(s.PTS) as PTS,
(avg(s.TOT) + avg(s.AST) + avg(s.ST) + avg(s.PTS) + avg(s.P2M) + avg(s.P3M) + avg(s.FTM) + avg(s.RV) + avg(s.FV))
- (avg(s.TO) + avg(s.P3A) + avg(s.P3A) + avg(s.FTA) + avg(s.AG) + avg(s.CM)) as EFF
FROM gamesstats AS gs, stats AS s
WHERE gs.$homeOrVisitor = s.ID
AND gs.HomeTeamID = $ESCteam
AND gs.SeasonStart = $ESCseason
AND gs.LeagueID = $ESCleague
I would prefer a fast solution because we are talking about huge tables (30k+ stats). Will edit if needed.