2016-06-09 2 views
0

У меня есть запрос, который возвращает ежедневные данные за последние 7 дней. Я хотел бы знать синтаксис для получения недельных данных за последние 4 недели с помощью BigQueryИнформация о уровне недели Bigquery

-недельных Всего

недели 1 15 недели 2 20 недели 3 35

ответ

1

Что-то вдоль этих линий:

SELECT 
    YEAR(day) AS year, 
    WEEK(day) AS week, 
    SUM(metric) AS total 
FROM YourTable 
WHERE WEEK(CURRENT_DATE()) - WEEK(day) < 4 
GROUP BY 1, 2 

Для проверки/воспроизведения - вы можете использовать ниже подход, который hopefuly имитирует ваши данные

SELECT 
    YEAR(day) AS year, 
    WEEK(day) AS week, 
    SUM(metric) AS total 
FROM (
    SELECT 
    DATE(DATE_ADD(TIMESTAMP('2016-01-01'), pos - 1, "DAY")) AS day, 
    CAST(100 * RAND() AS INTEGER) AS metric 
    FROM (
     SELECT ROW_NUMBER() OVER() AS pos, * 
     FROM (FLATTEN((
     SELECT SPLIT(RPAD('', 1 + DATEDIFF(TIMESTAMP(CURRENT_DATE()), TIMESTAMP('2016-01-01')), '.'),'') AS h 
     FROM (SELECT NULL)),h 
))) 
) AS YourTable 
WHERE WEEK(CURRENT_DATE()) - WEEK(day) < 4 
GROUP BY 1, 2 
+0

получил это .. Спасибо! – rbkk2016

Смежные вопросы