问题标签 [bigquery-standard-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
892 浏览

sql - 从查找表中替换 SQL 中的列值

我有一个 sqlEmployee表,它描述了用户对特定金属的喜爱程度,该表看起来像这样

Employee_number 字段是一个唯一字段,

还有一个表格描述了金属的一般排名,它看起来像这样:

我想做的是,每当员工有空值时,根据他们的排名填写默认金属

例如-> 对于员工 10:所有值均为 null ,easy ,他的 rank_1 金属为 Gold , rank2_metal 为 Platinum , rank3_metal 为 Silver , rank 4_metal 为铜 , rank 5_metal 为青铜

现在对于employee_1,他已经拥有rank_1 金属,但没有其他可用的rank ,所以将rank2_metal 替换为Platinum ,将rank_3 金属替换为银,将rank_4 金属替换为铜,将rank_5 金属替换为青铜

现在对于employee_2,他的第一金属是青铜,第二金属是金,他的rank3_metal是Platinum,rank_4 metal是silver,rank5_metal是铜

同理,以employee_6为例,他填了三个等级,需要填写等级4和5,他的等级_4金属是银,等级_5金属是铜。

有没有人对这如何成为 sql 中的一个有任何建议,我正在使用 bigquery

0 投票
2 回答
733 浏览

firebase - 选择首次打开应用的用户及其后续访问

我想选择第一次访问我们的应用程序的用户 以及他们在接下来的几周内event.name = "first_open"使用的后续访问 。event.name = "user_engagement"

到目前为止,我遇到的查询是:

但它包括在此期间没有第一次打开应用程序的普通用户。我如何排除这些?

0 投票
0 回答
55 浏览

arrays - Bigquery / 标准 SQL - 虚拟化数组

我正在尝试从数组创建虚拟列。

我的原始数据集如下所示

我想要实现的是一个表,它使所有类别(例如,创建一个新的 Categories_1、Categories_44、Categories_56 等列),其中数组长度不固定。

输出应如下所示 - 包含所有可能的列,具体取决于类别列中的内容

从初始表中 - 我已经设法使用 SPLIT 函数将类别拆分

它给了我一个数组,我不太确定如何从这里开始。

使用 CASE WHEN 对其进行硬编码几乎是不可能的,因为用户数量多达数万,类别多达数百

0 投票
2 回答
57 浏览

sql - 我正在尝试查询以获取活动,不包括注册当天(特定 ID 的首次出现)

我有一个带有行 ID 和日期的基本表“事件”。它显示用户每次与站点交互(注册或登录)的时间。

我想计算每天的活跃用户。但我想排除用户注册当天的所有活动。

现在,相同的表格格式但没有第一次出现的 id 可以解决我的问题。

0 投票
1 回答
387 浏览

date - 从字符串转换 BigQuery 日期

我到处找,找不到这个答案。这是一个非常简单的查询,但我一生都无法弄清楚如何更改日期。

我有一个日期作为字符串输入,但它没有被拾取。日期被输入为 20170601,但我需要它采用日期格式,以便在 Tableau 中获取。我正在使用标准 SQL 并尝试将PARSE_DATE("%x", date) as parsedcast(date as date)等,但我不断收到错误:无法解析输入字符串“20170918”或它的一些变体错误。

#standardSQL SELECT visitorid, parse_DATE("%x", date) AS parse FROM google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910

该表在`

请指教!!

0 投票
2 回答
2593 浏览

sql - 在 BigQuery 中滚动 90 天活跃用户,提高性能 (DAU/MAU/WAU)

我正在尝试获取特定日期的独特事件的数量,回滚 90/30/7 天。我已经使用下面的查询在有限数量的行上进行了这项工作,但是对于大型数据集,我会从变得庞大的聚合字符串中得到内存错误。

我正在寻找一种更有效的方法来实现相同的结果。

表看起来像这样:

所需结果的格式:

我的查询如下所示:

0 投票
1 回答
2746 浏览

google-bigquery - 在 bigquery 中了解一个月的周数

我想知道 bigquery 标准 sql 中某个日期的一个月的周数。在 postgresql 中,如果我写,
选择 To_char(current_date, 'YYYY-MM-W')
它适用于日期 '25-04-2018' 作为2018-04-4。
这里 2018 是年份,04 是月份,4 是日期所在月份的第四周。
我想在 bigquery 标准 sql 中有类似的东西。如果我写
select format_date("%Y-%m",current_date())
它只给出 2018-04
我还想知道月份的周数。先感谢您。

0 投票
2 回答
45 浏览

sql - Google Bigquery 标准 SQL - 已搜索目的地但未预订的 id 计数

我在航空公司应用程序中有一个搜索数据表。我想编写一个查询,输出仅搜索纽约一个机场而不搜索纽约任何其他机场的访客数量。所以基本上计算出搜索一个机场而不尝试纽约任何其他机场的人数。

假设纽约机场是 JFK、LGA、EWR 和 MSY。

表格看起来类似于:

例如,访客 12 和 15 将是我希望包括在计数中的人,因为他们没有扩展他们的搜索。例如,访客 14 将是我希望将其包括在那些确实扩展搜索的人的计数中的人。

基本上我想要一个计数:

  • 没有扩展搜索,也没有预订
  • 确实扩展了搜索但没有预订
  • 确实扩展了搜索并预订了

希望一切都有意义?任何帮助将非常感激!

0 投票
2 回答
2715 浏览

google-bigquery - 基于 WHERE 的 Google Bigquery 多次更新 - 需要解决方案

有没有办法根据其他字段值 WHERE 进行多次更新,而不是 CASE

想法在下面

谢谢

0 投票
1 回答
54 浏览

sql - 重叠条件 - 在字段内

如果我有一个像ID、IntrvalStartPoints、IntervalEndPoints
这样的表, 其中 StartPoints 包含间隔的开始,而 EndPoints 是间隔的结束。

例如:

这里我们有 6 个区间 <94994731,94996152>, <94997876,94998036>, ...

我们可以编写一个查询来检查例如ID:1000、Start:95005812、End:95005815 是否与任何间隔重叠。

谢谢!