Я хотел бы сделать ежедневный запрос (используя bigquery), чтобы сравнить суммы для различных метрик между вчера и сегодня. Пример набора данных выглядит следующим образом:
при условии, что сегодня 23 декабря 2019 года, запрос агрегирует различные показатели (доход, стоимость, прибыль) для разных клиентов за 23 декабря(сегодня) и 22 декабря (вчера), если сумма (вчера) / сумма (сегодня) не находится в пределах 0,5-1,5, то она будет помечена как аномальная
, запрос будетсделано ежедневно, и новый результат будет просто добавлен. в идеале финальная таблица должна выглядеть следующим образом:
Моя главная задача состоит в том, чтобы я мог сделать это только для одного показателя (т. е. дохода), но не уверенкак применить ко всем метрикам (а также сделать запрос более эффективным). это код, который я написал
SELECT cust_id,
SUM(CASE WHEN date = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
THEN revenue
END) AS sum(yesterday),
SUM(CASE WHEN date = DATE_ADD(CURRENT_DATE(), INTERVAL 0 DAY)
THEN revenue
END) AS sum(today),
SUM(CASE WHEN date = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
THEN revenue
END) / SUM(CASE WHEN date = DATE_ADD(CURRENT_DATE(), INTERVAL 0 DAY)
THEN revenue
END) as ratio,
FROM `dataset`
GROUP BY cust_id
, и код дает мне:
Заранее извиняюсь за отсутствие ясности ввопрос, так как я новичок в этом и не уверен, как точнее сформулировать этот вопрос