相关疑难解决方法(0)

你如何比较BigQuery中的两个数组?

我正在尝试连接两个表,每个表都有一个如下所示的数组列

SELECT a.id, b.value
FROM a INNER JOIN b
ON a.array IN b.array
Run Code Online (Sandbox Code Playgroud)

要么

SELECT a.id, b.value
FROM a INNER JOIN b
ON UNNEST(a.array) IN UNNEST(b.array)
Run Code Online (Sandbox Code Playgroud)

根据这个问题,postgres有像<@> @这样的运算符来比较是否是另一个数组的子集( postgres doc页面),但是BigQuery只允许将数组的元素与其他数组进行比较,如下所示

a.arrayelement IN UNNEST(b.array)
Run Code Online (Sandbox Code Playgroud)

可以在BigQuery中完成吗?

编辑

这是我正在使用的架构

WITH b AS (
    {  "ip": "192.168.1.1",
      "cookie": [
        { "key": "apple",
          "value: "red"
        },
        { "key": "peach",
          "value: "pink"
        },
        { "key": "orange",
          "value: "orange"
        }
      ]
    }
    ,{  "ip": "192.168.1.2",
      "cookie": [
        { "key": "apple", …
Run Code Online (Sandbox Code Playgroud)

google-bigquery

6
推荐指数
2
解决办法
2361
查看次数

标准 sql 查询以获取与另一个表匹配的记录字段(Google BigQuery)

我有两张桌子

1) 表 main

   id    phone.type  phone.id
==============================
|   1   | android | adkfjagp |
|       | android | asdfasdf |
|       | iphone  | akfj2341 |
|       | iphone  | ada93519 |
------------------------------
Run Code Online (Sandbox Code Playgroud)

我有另一个表,它存储了一堆这样的安卓手机 ID

2) 表 android

==============
|  adkfjagp  |
|   ...      |
--------------
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以获取表 main 中的所有行,其中该行包含一个类型为 android 和 id 的记录,该记录也在表 android 中。

sql google-bigquery

5
推荐指数
1
解决办法
965
查看次数

BigQuery REPEATED字段包含

有没有一种方法可以检查BigQuery REPEATED字段是否包含特定值?

我正在尝试做类似的事情:

SELECT CASE WHEN column1 CONTAINS ("Test Value") THEN 1 ELSE 0 END FROM testdata
Run Code Online (Sandbox Code Playgroud)

当column1是模式为REPEATED的STRING类型的字段时。我有多个相同性质的REPEATED列,因此不得不将它们全部弄平似乎很乏味。

google-bigquery

1
推荐指数
1
解决办法
2320
查看次数

标签 统计

google-bigquery ×3

sql ×1