Я начну с двух независимых запросов, которые дают мне правильные результаты для каждого:
SELECT
DATE_TRUNC(ga.traffic_date, WEEK(MONDAY)) week_start,
SUM(traffic) traffic
FROM
`ga.daily_traffic`
WHERE traffic_date >= '2019-03-04'
Возвращает:
+--------------+---------+
| traffic_week | traffic |
+--------------+---------+
| 2019-03-04 | 66572 |
+--------------+---------+
Второй запрос:
SELECT
week_start,
SUM(traffic) traffic
FROM
`marketing.channel_spend`
WHERE week_start = '2019-03-04'
Возвращает:
+------------+----------+
| week_start | spend |
+------------+----------+
| 2019-03-04 | 80143.07 |
+------------+----------+
Я должен отметить для этого второго запроса: поле week_start
уже хранится с еженедельным приращением, что, возможно, является причиной этого (?) Когда я соединяю два вместе, как так:
SELECT
week_start,
SUM(spend) spend,
SUM(traffic) traffic
FROM
`ga.daily_traffic` ga
LEFT JOIN `marketing.channel_spend` chan
ON DATE_TRUNC(ga.traffic_date, WEEK(MONDAY)) = chan.week_start
WHERE week_start = '2019-03-04'
GROUP BY 1
ORDER BY 1 DESC
Производит следующее:
+------------+---------+-----------+
| week_start | traffic | spend |
+------------+---------+-----------+
| 2019-03-04 | 153115 | 561001.49 |
+------------+---------+-----------+
Что вызывает общее количество трафика и расходы взорвать?