#sql #google-bigquery
# #sql #google-bigquery
Вопрос:
Это работает как заклинание для извлечения всех уникальных комбинаций (год, месяц) из моей таблицы:
SELECT
STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(Date), '%Y-%m') as month,
FROM
[Table]
Он возвращает 2016-05, 2016-06, 2016-07 и т. Д
Хотите сделать то же самое для (год, квартал), но ничего не нашли. Какие-нибудь советы? Я знаю, что quarter очень сложно для sql. Спасибо!
Комментарии:
1. я использую Google big query
Ответ №1:
Объедините функцию КВАРТАЛА с функцией ГОДА:
select concat(string(year(timestamp)),'-Q',string(quarter(timestamp))) as mquerter
from [table]
group by 1
Ответ №2:
Для полноты картины, используя стандартный SQL (снимите флажок «Использовать устаревший SQL» в разделе «Показать параметры» в пользовательском интерфейсе), вы можете сделать:
SELECT DISTINCT EXTRACT(YEAR FROM t), EXTRACT(QUARTER FROM t)
FROM MyTable;
Например:
WITH MyTable AS (
SELECT t
FROM UNNEST([TIMESTAMP '2016-01-01',
TIMESTAMP '2016-04-03',
TIMESTAMP '2016-02-28',
TIMESTAMP '2017-06-25']) AS t
)
SELECT DISTINCT
EXTRACT(YEAR FROM t) AS year,
EXTRACT(QUARTER FROM t) AS quarter
FROM MyTable;
------ ---------
| year | quarter |
------ ---------
| 2016 | 1 |
| 2016 | 2 |
| 2017 | 2 |
------ ---------