回答編集履歴
4
加筆修正
answer
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
値なないことを想定して`coalesce(result.count, 0)`などとします。
|
13
13
|
|
14
14
|
```sql
|
15
|
-
select d.
|
15
|
+
select d.ym, coalesce(r.count, 0) as count
|
16
16
|
from (
|
17
17
|
select to_char(s.a, 'YYYYMM') as ym
|
18
18
|
from (
|
@@ -27,4 +27,6 @@
|
|
27
27
|
) as r on d.ym = r.ym
|
28
28
|
```
|
29
29
|
|
30
|
-
で動きますでしょうか。(動作テストできてませんけど。)
|
30
|
+
で動きますでしょうか。(動作テストできてませんけど。)
|
31
|
+
2018年のデータだけ集計したいように見えたので、
|
32
|
+
[date_part(text, timestamp)](https://www.postgresql.jp/document/9.6/html/functions-datetime.html)()を使えば良さそうかなと。
|
3
見直し
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
```sql
|
5
5
|
select to_char(s.a, 'YYYYMM') as ym
|
6
6
|
from (
|
7
|
-
select * from generate_series('2018-01-01'::timestamp, '2018-
|
7
|
+
select * from generate_series('2018-01-01'::timestamp, '2018-12-01'::timestamp, '+1 month'::interval)
|
8
8
|
) as s(a)
|
9
9
|
```
|
10
10
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
from (
|
17
17
|
select to_char(s.a, 'YYYYMM') as ym
|
18
18
|
from (
|
19
|
-
select * from generate_series('2018-01-01'::timestamp, '2018-
|
19
|
+
select * from generate_series('2018-01-01'::timestamp, '2018-12-01'::timestamp, '+1 month'::interval)
|
20
20
|
) as s(a)
|
21
21
|
) as d
|
22
22
|
left join (
|
2
加筆修正
answer
CHANGED
@@ -20,9 +20,10 @@
|
|
20
20
|
) as s(a)
|
21
21
|
) as d
|
22
22
|
left join (
|
23
|
-
SELECT to_char(date, 'YYYYMM') as ym, SUM(insert_count) as count
|
23
|
+
SELECT to_char(orders.date, 'YYYYMM') as ym, SUM(orders.insert_count) as count
|
24
24
|
FROM orders
|
25
|
+
WHERE date_part('year', orders.date) = 2018
|
25
|
-
|
26
|
+
GROUP BY to_char(orders.date, 'YYYYMM')
|
26
27
|
) as r on d.ym = r.ym
|
27
28
|
```
|
28
29
|
|
1
見直し
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
```sql
|
5
5
|
select to_char(s.a, 'YYYYMM') as ym
|
6
6
|
from (
|
7
|
-
select * from generate_series('2018-01-01'::timestamp, '2018-
|
7
|
+
select * from generate_series('2018-01-01'::timestamp, '2018-09-01'::timestamp, '+1 month'::interval)
|
8
8
|
) as s(a)
|
9
9
|
```
|
10
10
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
from (
|
17
17
|
select to_char(s.a, 'YYYYMM') as ym
|
18
18
|
from (
|
19
|
-
select * from generate_series('2018-01-01'::timestamp, '2018-09-01'::timestamp, '+1 month')
|
19
|
+
select * from generate_series('2018-01-01'::timestamp, '2018-09-01'::timestamp, '+1 month'::interval)
|
20
20
|
) as s(a)
|
21
21
|
) as d
|
22
22
|
left join (
|