BigQuery - функция даты SQL, сгруппированная по месяцам - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть поле в таблице BigQuery:

'create_date'

.Мне нужно получить результат подсчета записей по методу create_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, но ни один из подходов не работает с BigQuery.

Кто-нибудь успешно делал это с BigQuery?(и как).Все отзывы, очень ценю.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Ниже для стандартного SQL BigQuery

Предполагается, что поле 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  
0 голосов
/ 08 февраля 2019

Использование date_trunc():

select date_trunc(created_date, month)as yyyymm, count(*)
from t
group by yyyymm
order by yyyymm;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...