Цель : чтобы подсчитать количество пользователей, у которых event_name= 'Wallet'
Проблема : я ограничил результат запроса до 100 для проверки, поэтому ожидаемый результат должен быть 100, но когда я использую count(params.value.string_value)
, он показывает 124 .
Код : SELECT count(params.value.string_value) FROM "myproj.analytics_197163127.events_20190528",UNNEST(event_params) as params where event_name ='Wallet' and params.key = 'UserId' limit 100
ожидаемый результат : если запрос возвращает 100 записей, количество должно быть 100, но как оно показывает 124?
Надеюсь вопрос понятен
Да, конечно, когда я запускаю запрос, он показывает 100 записей, но когда я вижу, что счетчик показывает 120, запрос к нам SELECT event_date,event_timestamp,event_name, params.value.string_value FROM
myproj.analytics_197163127.events_20190528, UNNEST(event_params) as params where event_name ='Wallet' and params.key = 'UserId' limit 100
Пожалуйста, отредактируйте свой вопрос с помощью сделанных запросов. Будущим разработчикам будет полезнее, спасибо :)
@SaiSivaSubramanianL Я редактировать на ваш вопрос. Если это не так, используйте ссылку редактирования для обновления. Что касается вашего вопроса, я вижу, что у вас есть limit 100
в вашем SQL. Я что-то упустил?
@PolOrtiz@TamirKlein Я отредактировал вопрос, пожалуйста, проверьте его еще раз Спасибо.
@SaiSivaSubramanianL мне нужна ваша помощь в отношении firebase, как я могу с вами связаться?
Запрос показывает 100 записей из-за ограничения 100 в конце:
SELECT event_date,event_timestamp,event_name, params.value.string_value
FROM myproj.analytics_197163127.events_20190528, UNNEST(event_params) as params
where event_name ='Wallet' and params.key = 'UserId'
limit 100
Удалите это и проверьте снова.
LIMIT 100 указывает количество строк, которые должны быть возвращены из оператора SQL. Это не влияет на COUNT() в вашем запросе. Итак, есть разница между:
select count(*) from table limit 100
это вернет одно значение с количеством строк в таблице. С другой стороны :
select count(*) from (select * from table limit 100)
Это вернет 100 (если в таблице более 100 строк, иначе будет возвращено количество строк в таблице)
Привет, спасибо, думаю, я задал вопрос по-другому, я снова отредактировал его, пожалуйста, проверьте сейчас.
limit
применяется к набору результатов, созданному запросом.
Ваш запрос является запросом агрегации без group by
. Такая агрегация всегда возвращает одну строку. Таким образом, limit
не влияет на результаты.
Если вы хотите увидеть 100
для набора результатов, используйте CTE или подзапрос:
SELECT count(params.value.string_value)
FROM (SELECT params
FROM "myproj.analytics_197163127.events_20190528" e CROSS JOIN
UNNEST(e.event_params) params
WHERE e.event_name ='Wallet' AND params.key = 'UserId'
LIMIT 100
) ep
Что вы пробовали? Предоставьте образцы данных и ожидаемый результат в виде форматированного текста, а не изображений. Дополнительная информация здесь