Re: Week numbers and calculating weekly statistics/diagrams
От | Thom Brown |
---|---|
Тема | Re: Week numbers and calculating weekly statistics/diagrams |
Дата | |
Msg-id | bddc86151002160552i38d89671jf4731979e2d5b802@mail.gmail.com обсуждение исходный текст |
Ответ на | Week numbers and calculating weekly statistics/diagrams (Alexander Farber <alexander.farber@gmail.com>) |
Список | pgsql-general |
On 16 February 2010 12:14, Alexander Farber <alexander.farber@gmail.com> wrote: > Hello, > > I have multiplayer card game in Flash/Perl/C and would > like to add weekly tournaments/player ratings to it. > > This means I have to add a table which holds: > player id, weekly score (which I update after each round) > and the week number. > > Does anybody has an advice how to save the week number? > > If I save it as a timestamp then calculating realtime statistics > (on a player profile click) will probably be CPU-intensive, > because I have to calculate the week numbers each time. > > If I save it as string "2010/52" then it's difficult to show > statistics for a period of time (like for the last 12 months) > if there is a new year inbetween. > > Maybe there is a better way? > > I'm using postgresql-server-8.3.6 and OpenBSD 4.5 > > Regards > Alex > If you're worried about CPU overhead, couldn't you just index using an expression? Such as: CREATE INDEX this_index ON results (extract(week from game_date)); Or even a multicolumn index like: CREATE INDEX this_index ON results (extract(week from game_date), player_id); Then: SELECT extract(week from game_date), player_id, sum(score) FROM results GROUP BY extract(week from game_date), player_id ORDER BY extract(week from game_date), player_id Thom
В списке pgsql-general по дате отправления: