問題

BigQueryテーブルにフィールドがあります。

'created_date'

。私は 'created_date'によってレコードの数の出力を得る必要があります 年:2014年... 2019年

望ましい出力:

 2014
Jan   1125
Feb   3308

2015
Jan   544
Feb   107
...

2016
...

2017

2018
...

2019
Jan   448
Feb   329
...
 

等々。

または:

 Jan-2014  <count>
Feb-2014  <count>
 

すべてのレコードを月単位でカウント(集約)するだけです。

Oracle、PostgreSQL、MySQL用のStack Overflowでこれを行う方法はいくつか見つかりましたが、BigQueryではどのアプローチも機能しません。

誰もBigQueryでこれを成功させましたか? (そしてどのように)。すべての応答、非常に高く評価されます。

  ベストアンサー

以下はBigQuery標準SQLのためのものです

created_dateフィールドがDATEデータ型であると仮定します

 #standardSQL
SELECT 
  FORMAT_DATE('%b-%Y', created_date) mon_year, 
  COUNT(1) AS `count`
FROM `project.dataset.table`
GROUP BY mon_year
ORDER BY PARSE_DATE('%b-%Y', mon_year)  
 

上記のクエリは以下のようなものを生成します

 Row mon_year    count    
1   Jan-2014    1389     
2   Feb-2014    1255     
3   Mar-2014    1655     
. . .   
60  Dec-2018    1677     
61  Jan-2019    1534     
62  Feb-2019    588  
 

  同じタグがついた質問を見る

sqlgoogle-cloud-platformgoogle-bigquery