質問するログイン新規登録

回答編集履歴

2

修正

2018/09/10 01:54

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  , ymd as (
9
9
  select generate_series(start_date, start_date + (range || ' year')::interval, '+1 month')::date as ymd from para
10
10
  )
11
- SELECT to_char(ymd, 'YYYYmm') as ym, SUM(insert_count) as count 
11
+ SELECT to_char(ymd, 'YYYYmm') as ym, SUM(coalesce(insert_count,0)) as count 
12
12
  FROM ymd left join orders on ymd.ymd=orders.date
13
13
  GROUP BY to_char(ymd, 'YYYYmm')
14
14
  ```

1

推敲

2018/09/10 01:54

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,4 @@
1
- generate_series()を使用するのは、m6uさんと同じなのですけど、質問にあるSQLは文法エラーだったり、書式(%yとか)がMySQLのものだったりしています。(dateは予約なので項目名としては相応しくありませんよ)
1
+ generate_series()を使用するのは、m6uさんと同じなのですけど、質問にあるSQLは文法エラーだったり、書式(%yとか)がMySQLのものだったりしています。(dateは予約なので項目名としては相応しくありませんよ)
2
2
 
3
3
  以下は、開始の日付と取得する年数をパラメータとして、取得するサンプルです。
4
4
  ```SQL