В предыдущем вопросе был дан ответ для выполнения запроса, который будет получать доход за последний год в новом столбце.Это сработало отлично, но теперь у меня есть дополнительный вопрос. (просмотрите эту ссылку, чтобы взглянуть на предыдущий вопрос)
Запрос, используемый для получения этих данных (благодаря Михаил ):
#standardSQL
SELECT
a.date, a.location, a.revenue,
DATE_SUB(a.date, INTERVAL 1 YEAR) date_last_year,
IFNULL(b.revenue, 0) revenue_last_year
FROM `project.dataset.table` a
LEFT JOIN `project.dataset.table` b
ON a.location = b.location
AND DATE_SUB(a.date, INTERVAL 1 YEAR) = b.date
Упрощенный результат выглядит следующим образом (ограничено 1 местоположением):
date revenue revenue_last_year
2019-01-31 1471,2577 2185,406
2019-01-30 1291,1111 4723,7439
2019-01-29 2178,6532 2263,5283
2019-01-28 1531,8021 0
2019-01-26 1578,1247 2446,6234
2019-01-25 1299,644 1522,4537
2019-01-24 788,2669 1979,104
2019-01-23 787,441 4117,7927
2019-01-22 2437,2951 1876,2479
2019-01-21 1071,0476 0
2019-01-19 2291,0456 2289,8657
Следующий вопрос относится к работе с рабочими днями прошлого года.Как вы можете видеть, выручка за прошлый год имеет значения «0».Это потому, что это день, когда место А было закрыто.Однако для точного сравнения изо дня в день нам нужно найти доход за день, когда этот доход был открыт.
Для получения дополнительной информации, посмотрите на эту таблицу ниже, чтобы увидеть, как это выглядит, когда мы берем последние 10 дней января этого года и добавляем два столбца с доходами прошлого года, найденными вручную:
date revenue revenue_last_year date revenue
2019-01-31 1471,2577 2185,406 2018-01-31 2185,406
2019-01-30 1291,1111 4723,7439 2018-01-30 4723,7439
2019-01-29 2178,6532 2263,5283 2018-01-29 2263,5283
2019-01-28 1531,8021 0 2018-01-27 2843,6616
2019-01-26 1578,1247 2446,6234 2018-01-26 2446,6234
2019-01-25 1299,644 1522,4537 2018-01-25 1522,4537
2019-01-24 788,2669 1979,104 2018-01-24 1979,104
2019-01-23 787,441 4117,7927 2018-01-23 4117,7927
2019-01-22 2437,2951 1876,2479 2018-01-22 1876,2479
2019-01-21 1071,0476 0 2018-01-20 2561,4086
2019-01-19 2291,0456 2289,8657 2018-01-19 2289,8657
Обратите внимание на различия в датах.
Что было бы хорошим способом решить эту проблему?Нужно ли было бы подстраиваться под запрос по рабочим дням и как бы вы подошли к этому?