postgres で date型を対象にした検索 postgres

postgres で date型を対象にした検索

・年
select extract( year from datetime) from hogetbl limit 50

・時間
select extract( hour from datetime) from hogetbl limit 50

・午前と午後で分ける
時間や年などある時間帯をピンポイントで指定したい場合はextract使うと便利
select
datetime
case
when extract( hour from datetime) < 12 then gozen
when extract( hour from datetime) >= 12 then gogo
else error
end as f
from hogetbl order by datetime asc limit 1000

・午前と午後で平均値をとる
select
to_char(datetime YYYY-MM-DD AM )
avg(value)
from hogetbl
group by 1 order by asc limit 100


余談だけど、対象はpostgresなのだけど、平均値を求めるのにavg ではなくて average と入力してててはまりかけてた。ずっと
postgres ERROR: function average(double precision) does not exist
No function matches the given name and argument types. You might need to add explicit type casts.
みたいなエラーでてたのに。思い込み怖い、