问题标签 [bigquery-udf]
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.
google-bigquery - 按特定顺序组合字符串
样品表
数字 | DEAL_NUMBER | NAME1 | NAME2 |
---|---|---|---|
1 | T01 | 汤姆 | 杰瑞 |
2 | T02 | 勒布朗 | 史蒂文 |
希望输出如下:
数字 | DEAL_NUMBER | NAME1 | NAME2 | 名称_COM |
---|---|---|---|---|
1 | T01 | 汤姆 | 杰瑞 | 勒布朗·汤姆·史蒂文·杰里 |
2 | T02 | 勒布朗 | 史蒂文 | 勒布朗·汤姆·史蒂文·杰里 |
使用 string_agg 函数可以解决,但不够方便。
有什么方法可以做得更好吗?
google-bigquery - 是否有 UDF 可以帮助修剪每个表中的所有字符串空间?
我是一个 bigquery 用户,这里需要修剪表中 (data type=string) 的所有空格。
通常,每个表中有数百个字段。
如果我一个一个地使用它,这是非常低效的。
是否有可能有更好的解决方案或创建 UDF 来解决?
样品表:
sql - 从 BigQuery 中的每日需求中减去库存并添加新库存
这是我的数据的样子:
日期 | 库存单位 | 库存添加 | 要求 |
---|---|---|---|
2021 年 11 月 22 日 | XYZ | 70 | 18 |
2021 年 11 月 23 日 | XYZ | 0 | 18 |
2021 年 11 月 24 日 | XYZ | 0 | 50 |
2021 年 11 月 25 日 | XYZ | 0 | 15 |
2021 年 11 月 26 日 | XYZ | 80 | 30 |
2021 年 11 月 27 日 | XYZ | 0 | 20 |
2021 年 11 月 28 日 | XYZ | 0 | 15 |
2021 年 11 月 29 日 | XYZ | 0 | 20 |
2021 年 11 月 30 日 | XYZ | 0 | 10 |
2021 年 12 月 1 日 | XYZ | 100 | 40 |
2021 年 12 月 2 日 | XYZ | 0 | 10 |
我想创建一个solution
使用 BigQuery SQL 命名的新列,在第一行,即 2021 年 11 月 22 日,我希望公式为 - inventory_added - demand
。这将给我第一行的值为solution
52。
现在我不能做的是从第二行开始:所以,接下来,将是52 (remaining inventory from previous day) + 0 (inventory_added on 23rd Nov 2021) - 18 (demand on 23 Nov 2021)
. 这等于 34。
同样转到下一行,即 11 月 24 日:值 insolution
将是34 + 0 - 50 = -16
。现在因为它是负数,所以应该把它设为 0。
我试过这个 - MAX(solutions, 0)
。
结果将如下所示:
日期 | 库存单位 | 库存添加 | 要求 | 解决方案 |
---|---|---|---|---|
2021 年 11 月 22 日 | XYZ | 70 | 18 | 52 |
2021 年 11 月 23 日 | XYZ | 0 | 18 | 34 |
2021 年 11 月 24 日 | XYZ | 0 | 50 | 0 |
2021 年 11 月 25 日 | XYZ | 0 | 15 | 0 |
2021 年 11 月 26 日 | XYZ | 80 | 30 | 50 |
2021 年 11 月 27 日 | XYZ | 0 | 20 | 30 |
2021 年 11 月 28 日 | XYZ | 0 | 15 | 15 |
2021 年 11 月 29 日 | XYZ | 0 | 20 | 0 |
2021 年 11 月 30 日 | XYZ | 0 | 10 | 0 |
2021 年 12 月 1 日 | XYZ | 100 | 40 | 60 |
2021 年 12 月 2 日 | XYZ | 0 | 10 | 50 |
我不确定这是否可以通过 BigQuery 完成,但欢迎提出所有建议。
谢谢!
google-bigquery - 带有 UDF Javascript 的 BigQuery 函数
我需要创建一个使用 BigQuery 的 UDF 和 Javascript 语言的函数。在该 UDF 中,它连接一些字符串以形成完整的查询。但最后,我需要执行查询。
我试过使用 EXECUTE IMMEDIATE,但我的目标不是成功,因为当我调用 SELECT d.myFunction() 时,它只返回字符串,而不是它的数据。
有谁知道如何解决这个问题?
sql - 在 BigQuery SQL UDF 中存储变量
我正在尝试在 bigQuery 中创建一个 SQL UDF 来计算每月的周数。我得到了我期望的结果,但我的函数看起来超级混乱。
有没有办法在 bigQuery 中存储变量,这样我的代码看起来不会那么混乱?到目前为止,我一直在阅读 bQ 文档,但还没有找到在函数内部存储变量的方法(对于 SQL UDF)
任何帮助将不胜感激,谢谢!
google-bigquery - 在 Bigquery UDF 中使用地理编码服务
我正在尝试创建一个使用 Google地理编码服务的 Bigquery UDF 函数。
看来我们可以使用option 参数导入外部库,但我觉得我不能在这里使用地理编码服务。
遵循我的功能方法:
它抱怨是因为当我尝试使用该功能时它当然不知道google
说什么。ReferenceError: google is not defined at UDF$1(STRING) line 2, columns 23-24
我的最终目标是将我在 Bigquery 数据集中的地址转换为纬度/经度,这样我就可以在可视化工具中创建热图。
对于我的方法或完全不同的东西有什么建议吗?我看到了一些使用一些公共 Bigquery 数据集的建议(openstreetmaps 建议),但我有来自德国的地址,但它并没有很好地涵盖这一点。
Bigquery 似乎也不支持这种转换方式。
先感谢您!
google-bigquery - 按组分区的单个列值的所有可能的唯一组合
我在 Google BigQuery 中有一个如下表。Item
我正在尝试获取分区上的列的所有可能的唯一组合(除空子集外的所有子集)Group
。
我正在寻找如下输出:
我试图使用这个公认的答案来合并Group无济于事: 如何从单列中获取值的组合?
google-bigquery - 将 BigQuery javascript UDF 应用于组
我正在尝试将 javascript 用户定义函数应用于组。在下面的代码中, -- group by my_group
insidetuple
被注释掉了。我想在每个 inside 上应用temptest
函数。如果 group by 被注释掉,代码就会运行。如果我尝试包含 group by,它会产生一个“标量子查询产生了多个元素”。我应该进行哪些更改,以便我可以为每组输出一个数组 ( )?my_group
test_data
my_group
我正在寻找如下输出: