标签: legacy-sql

如何在 Bigquery 中使用正则表达式

我无法在 bigquery 的 customtarget 列上应用正确的正则表达式

使用普通的 MSSQL:

SELECT * from mytable where CustomTargeting like = '%u=%'  -- is all okay
Run Code Online (Sandbox Code Playgroud)

使用 Bigquery(legacy-sql) :

SELECT REGEXP_EXTRACT(CustomTargeting, r'[^u=\d]') as validate_users
from [project:dataset.impressions_4213_20181112] Limit 10
Run Code Online (Sandbox Code Playgroud)

错误:

必须仅指定一个捕获组

更新:

但无法获得子字符串 u ='anystring'

在此处输入图片说明

如何提取 CustomTargeting ='%u=somestring%' 的数据?

regex google-bigquery legacy-sql

7
推荐指数
1
解决办法
3万
查看次数

bigquery 过去 30 天的结果

我正在尝试为连接到 Google BigQuery 的 tableau 仪表板构建查询。我们有每个月数据的表格,但我想在任何给定时间显示过去 30 天的数据(因此它必须跨多个表格)。我当前的查询给出了错误“需要时间戳文字或显式转换为时间戳。” 我一直在寻找有关如何转换为时间戳的帮助,但没有找到任何有用的信息。这是我的代码。

    SELECT
      DATE(date_time) AS date,
    FROM
      TABLE_QUERY(myTable, "date(concat(left(table_id,4),'-',right(table_id,2),'-','01')) >= '2017-06-01'")
    WHERE 
        DATE(date_time) >= DATE_ADD(day,-30, current_date()) 
        and   DATE(date_time) <= current_date()
    ORDER BY 
        date
Run Code Online (Sandbox Code Playgroud)

任何有关如何使其工作的帮助将不胜感激。

注意:我们使用的是旧版 SQL

sql google-bigquery legacy-sql

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

BigQuery-json_extract数组中的所有元素

我正在尝试从jsons(使用sql legacy)中提取每个json中的两个密钥,目前我正在使用json提取功能:

json_extract(json_column , '$[1].X') AS X,
json_extract(json_column , '$[1].Y') AS Y,
Run Code Online (Sandbox Code Playgroud)

如何使它在“ json arry列”的每个json上运行,而不仅仅是[1](例如)?

json示例:

[

{"blabla":000,"X":1,"blabla":000,"blabla":000,"blabla":000,,"Y":"2"},

{"blabla":000,"X":3,"blabla":000,"blabla":000,"blabla":000,,"Y":"4"},

]   
Run Code Online (Sandbox Code Playgroud)

提前致谢!

sql arrays json google-bigquery legacy-sql

4
推荐指数
2
解决办法
4816
查看次数

展平Google BigQuery中的多个重复字段

我正在尝试将Big Query中重复字段中的数据弄平。我已经看过这个查询BigQuery中的多个重复字段的方法,但是我似乎无法使它正常工作。

我的数据如下所示:

[
  {
    "visitorId": null,
    "visitNumber": "15",


    "device": {
      "browser": "Safari (in-app)",
      "browserVersion": "(not set)",
      "browserSize": "380x670",
      "operatingSystem": "iOS",
    },
    "hits": [
      {
        "isEntrance": "true",
        "isExit": "true",
        "referer": null,
        "page": {
          "pagePath": "/news/bla-bla-bla",
          "hostname": "www.example.com",
          "pageTitle": "Win tickets!!",
          "searchKeyword": null,
          "searchCategory": null,
          "pagePathLevel1": "/news/",
          "pagePathLevel2": "/bla-bla-bla",
          "pagePathLevel3": "",
          "pagePathLevel4": ""
        },
        "transaction": null
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我想要的是hits-page重复字段中的字段。

例如,我想获取hits.page.pagePath(值为“ / news / bla-bla-bla”)

我已尝试使用以下查询,但出现错误:

SELECT 
visitorId,
visitNumber,
device.browser,
hits.page.pagePath
FROM 
`Project.Page`
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Error: Cannot …
Run Code Online (Sandbox Code Playgroud)

google-bigquery bigquery-standard-sql legacy-sql

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

BigQuery:除以列中值的总和即可找到比率

我有一个简单的表,有两列Bin_name(int) 和Count_in_this_bin(int)

我想将其转换为每个垃圾箱与所有垃圾箱中总数的比率。

我在 Google BigQuery 中使用了以下查询:

SELECT count_in_bin/(SELECT SUM(count_in_bin) FROM [table])
FROM [table]
Run Code Online (Sandbox Code Playgroud)

然后我得到

错误:查询失败错误:SELECT 子句中不允许子选择

现在有人可以告诉我在 BigQuery 中进行这种简单划分的正确方法吗?

sql google-bigquery legacy-sql

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

如何在 SQL Bigquery 中计算另一个事件之前特定事件的数量?

我有一个包含日期、事件和用户的表。有一个名为“A”的事件。我想找出 Sql Bigquery 中事件“A”之前和之后特定事件发生的次数。例如,

   User           Date             Events
    123          2018-02-13            X.Y.A
    123          2018-02-12            X.Y.B
    134          2018-02-10            Y.Z.A
    123          2018-02-11            A
    123          2018-02-01            X.Y.Z
    134          2018-02-05            X.Y.B
    134          2018-02-04            A
Run Code Online (Sandbox Code Playgroud)

输出会是这样的

User       Event    Before   After
123          A      1        3
134          A      0        1
Run Code Online (Sandbox Code Playgroud)

我必须计数的事件包含特定的前缀。意味着我必须检查以( XY 然后是某个事件名称)开头的事件。因此,XYSomeEvent 是我必须设置计数器的事件。有什么建议么?

sql google-bigquery legacy-sql

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

如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

我正在尝试(未成功)将 Google BigQuery 中的字符串列拆分为包含所有单个单词和所有单词对(彼此相邻并按顺序排列)的行。我还需要维护 IndataTable 中单词的 ID 字段。两个记录集都有 2 列。

IndataTable as IDT
ID WordString
1 苹果香蕉梨
2 胡萝卜
3 蓝红绿黄

OutdataTable 作为 ODT
ID WordString
1 苹果
1 香蕉
1 梨
1 苹果香蕉
1 香蕉梨
2 胡萝卜
3 蓝色
3 红色
3 绿色
3 黄色
3 蓝色红色
3 红色绿色
3 绿色黄色(仅对彼此相邻)

这可能在大查询 SQL?

编辑/添加:
这是我迄今为止所拥有的,可将其拆分为单个单词。我真的很难弄清楚如何将其扩展为单词对。我不知道是否可以对此进行修改,或者我完全需要一种新方法。

SELECT ID, split(WordString,' ') as Words
FROM (
  select * 
     from 
     (select ID, WordString from IndataTable)
)
Run Code Online (Sandbox Code Playgroud)

google-bigquery bigquery-standard-sql legacy-sql

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

BigQuery:SPLIT()中的错误返回

我在BigQuery中有一个表TabA,它有一列ColA,ColA列有以下结构

1038627|21514184
Run Code Online (Sandbox Code Playgroud)

而TabA表有超过一百万条记录.我用来分成多列

SELECT ColA,FIRST(SPLIT(ColA, '/')) part1,
       NTH(2, SPLIT(ColA, '/')) part2
FROM TabA
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,在某些行之后,拆分似乎无法正常工作.

我们得到这样的记录,

     ColA            part1   part2
1038627|21507470    1038627 21507470     
1038627|21534857    1038627 21507470     
1038627|21546455    1038627 21507470     
1038627|21577167    1038627 21507470
Run Code Online (Sandbox Code Playgroud)

It his happening on a random basis. Not sure where is there error.

SELECT COUNT(*) FROM TabA - returns say 1.7M records


SELECT ColA,FIRST(SPLIT(ColA, '|')) part1, NTH(2, SPLIT(ColA, '|')) part2 FROM TabA - returns 1.7M records with the wrong split


SELECT FIRST(SPLIT(ColA, '|')) part1, NTH(2, SPLIT(ColA, '|')) part2 …

sql google-bigquery legacy-sql

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

我想将两个表与Big查询中的公共列联接吗?

要加入表,我正在使用以下查询。

SELECT *
FROM(select user as uservalue1 FROM [projectname.FullData_Edited]) as FullData_Edited 
JOIN (select user as uservalue2 FROM [projectname.InstallDate]) as InstallDate 
ON FullData_Edited.uservalue1=InstallDate.uservalue2;
Run Code Online (Sandbox Code Playgroud)

该查询有效,但是联接的表只有两列uservalue1和uservalue2。我想使所有列都存在于两个表中。知道如何实现吗?

sql join google-bigquery legacy-sql

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