Как использовать EXISTS в BigQuery и получить то, что соответствует прошлому журналу
Я хочу знать. Кто-нибудь, кто получил доступ сегодня, получил доступ в прошлом? Число людей.
SELECT
COUNT(user_id) AS repeater_user_count
FROM
[access_log] AS table1
WHERE
_PARTITIONTIME = TIMESTAMP('2017-02-28')
AND
EXISTS
(
SELECT
1
FROM
[access_log] AS table2
WHERE
_PARTITIONTIME BETWEEN TIMESTAMP('2017-01-31') AND TIMESTAMP('2017-02-27')
AND
table1.user_id = table2.user_id
)
Однако пользовательский интерфейс BigQuery выдает ошибку.
Error: error at: 8.1 - 13.184. Only one query can be executed at a time.
Как я могу сослаться на ту же таблицу BigQuery?
Благодарю.
2 ответа
Убедитесь, что сначала включен стандартный SQL. Например,
#standardSQL
SELECT
COUNT(user_id) AS repeater_user_count
FROM
`access_log` AS table1
WHERE
_PARTITIONTIME = '2017-02-28'
AND
EXISTS
(
SELECT
1
FROM
`access_log` AS table2
WHERE
_PARTITIONTIME BETWEEN '2017-01-31' AND '2017-02-27'
AND
table1.user_id = table2.user_id
);
Еще один вариант для рассмотрения
#standardSQL
SELECT COUNT(user_id) AS repeater_user_count
FROM (
SELECT DISTINCT user_id
FROM `access_log`
WHERE _PARTITIONTIME = '2017-02-28'
)
WHERE user_id IN (
SELECT DISTINCT user_id
FROM `access_log`
WHERE _PARTITIONTIME BETWEEN '2017-01-31' AND '2017-02-27'
)