BigQuery 查询事件 Table
BigQuery Querying Events Table
Objective : 计算 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 条记录,因为最后限制为 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 语句中 return 编辑的行数。它不会影响查询中的 COUNT() 。所以两者之间存在差异:
select count(*) from table limit 100
这将 return 具有 table 中行数的单个值。另一方面:
select count(*) from (select * from table limit 100)
这将 return 100(如果 table 超过 100 行 - 否则它将 return table 中的行数)
limit
应用于查询产生的结果集。
您的查询是没有 group by
的聚合查询。这样聚合总是returns一行。因此,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
Objective : 计算 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 条记录,因为最后限制为 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 语句中 return 编辑的行数。它不会影响查询中的 COUNT() 。所以两者之间存在差异:
select count(*) from table limit 100
这将 return 具有 table 中行数的单个值。另一方面:
select count(*) from (select * from table limit 100)
这将 return 100(如果 table 超过 100 行 - 否则它将 return table 中的行数)
limit
应用于查询产生的结果集。
您的查询是没有 group by
的聚合查询。这样聚合总是returns一行。因此,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