回答編集履歴

2

加筆修正

2017/02/14 11:25

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,15 @@
13
13
  `date_part(text, timestamp)`だと、任意の日付要素を抽出してdouble precision型を返します。
14
14
 
15
15
  こちらでもgroup by句に使えます。
16
+
17
+
18
+
19
+ ちなみに、SELECT文のたびにこの手の精度丸め関数を使うのは
20
+
21
+ 動くけど少々時間がかかりやすいです。
22
+
23
+ テーブル構造を変更できるなら、
24
+
25
+ 抽出する粒度に合わせたグルーピング用データ(年とか月とか)もカラムに持たせて、
26
+
27
+ インデックスをかけると良いでしょう。

1

加筆修正

2017/02/14 11:25

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,11 @@
5
5
  `date_trunc('month', timestamp '2001-02-16 20:38:40')`は「2001-02-01」になります。
6
6
 
7
7
  これをgroup by句に加えれば、任意の精度に切り捨てて足し込んだり平均を取ったりできますね。
8
+
9
+ date_trunc()かけたあとでもtimestamp型を維持することに注意です。
10
+
11
+
12
+
13
+ `date_part(text, timestamp)`だと、任意の日付要素を抽出してdouble precision型を返します。
14
+
15
+ こちらでもgroup by句に使えます。