Я пытаюсь подсчитать среднее время, которое наши клиенты проводят во время оформления заказа, с помощью Google Big Query.
Поскольку я очень плохо знаком с SQL и BQ, я запускаю следующий код, пытаясь получить временную метку для начала проверки, временную метку для завершения проверки и затем вычислить среднее значение.
SELECT
month, chekout_start as Checkout Started,
time_to_transaction as Checkout
FROM ((SELECT
MONTH(TIMESTAMP(date)) AS month,
TIME(AVG(TimeToCheckout)) AS time_to_transaction
FROM (
SELECT
date,
fullVisitorId,
timestamp(integer(visitStartTime*1000000)) as start_time,
timestamp(integer(visitStartTime*1000000 + hits.time*1000)) as hit_time,
(TIMESTAMP_TO_SEC(timestamp(integer(visitStartTime*1000000 + hits.time*1000))) - TIMESTAMP_TO_SEC(timestamp(integer(visitStartTime*1000000)) ) ) AS TimeToCheckout
FROM (TABLE_DATE_RANGE([data.ga_sessions_],
TIMESTAMP('2018-01-01'), TIMESTAMP('2018-12-31')))
WHERE totals.transactions>=1
)
GROUP BY month) transaction
INNER JOIN
(
SELECT
MONTH(TIMESTAMP(date)) AS month,
TIME(AVG(TimeToCheckout)) AS checkout_start
FROM (
SELECT
date,
fullVisitorId,
timestamp(integer(visitStartTime*1000000)) as start_time,
timestamp(integer(visitStartTime*1000000 + hits.time*1000)) as hit_time,
(TIMESTAMP_TO_SEC(timestamp(integer(visitStartTime*1000000 + hits.time*1000))) - TIMESTAMP_TO_SEC(timestamp(integer(visitStartTime*1000000)) ) ) AS TimeToCheckout
FROM (TABLE_DATE_RANGE([data.ga_sessions_],
TIMESTAMP('2018-01-01'), TIMESTAMP('2018-12-31')))
WHERE (hits.page.pagePath = 'checkout/buy')
)
GROUP BY month
) checkout_start
ON transaction.month = checkout_start.month)
ORDER BY month ASC
Желаемый результат выглядит так:
![enter image description here](https://i.stack.imgur.com/UwceO.png)
Однако я получаю сообщение об ошибке "Обнаружена" "транзакция" в строке 18, столбец 17. Ожидалось: ")" ... '. Можете ли вы взглянуть на мой код и объяснить, что я делаю не так? Спасибо!