次のように形成されたデータベースがあります。
descr | hours | timer
----------+-------+------------
foo | 1.3 | 2012-07-14
foo | 2.5 | 2012-07-15
foo | 2.35 | 2012-07-16
bar | 1 | 2012-08-16
baz | 1 | 2012-08-16
buh | 5 | 2012-08-17
これは私が期待することを行います:
abc=# select extract('month' from timer) as Month, sum(hours) from foo group by Month order by 1;
month | sum
------+------
7 | 6.15
8 | 7
これは私が期待することを完全に行いません:
abc=# select to_char(timer, 'Month'), sum(hours) from foo group by 1 order by 1 asc;
to_char | sum
----------+------
August | 7
July | 6.15
望ましい結果は次のとおりです。
month | sum
----------+-----
July | 6.15
August | 7
#3 で物事が起こっている理由は理解していますが、PostgreSQL 内で可能な限り最も効率的な方法で、どのように望ましい結果を達成するのでしょうか?