小编Ste*_*rer的帖子

有没有办法在Big Query中进行滚动平均?

我知道Big Query中有一个AVG函数,并且有一些窗口函数可以向上或向下移动上一个或下一个值,但有没有任何函数可以让你在指定的时间间隔内进行平均?例如,我想要像下面这样的东西:

SELECT
    city
    AVG(temperature) OVER(PARTITION BY city, INTERVAL day,14, ORDER BY day) as rolling_avg_14_days,
    AVG(temperature) OVER(PARTITION BY city, INTERVAL day,30, ORDER BY day) as rolling_avg_30_days,
WHERE
    city IN ("Los Angeles","Chicago","Sun Prairie","Sunnyvale")
    AND year BETWEEN 1900 AND 2013
Run Code Online (Sandbox Code Playgroud)

我想进行滚动平均计算,允许我指定一系列值来执行聚合函数,以及要按什么值排序.平均函数将采用当前温度和之前的13天(或之前的29天)来计算和平均.今天有可能吗?我知道如果我在SELECT语句中放入13个LAG/OVER字段然后平均所有这些字段的结果,我可以做这样的事情,但这是很多开销.

google-bigquery

7
推荐指数
2
解决办法
3625
查看次数

SPLIT 可以与多个分隔符一起使用吗?

我想使用 SPLIT 函数对各种文本条目进行单词分析,在本例中是 git commit 注释。通常,单词由空格分隔,但我还想在分隔符列表中包含逗号、分号、冒号、句点、问号、感叹号、制表符、新行。本质上使用 REGEX 模式来指定分隔符,如果找到其中任何一个,则将其视为分隔符。

例如:

SELECT 
    split(commit_message, " ") as words,
FROM [project:dataset.table] 
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

如果输入数据类似于:

"Commit message XYX:  Hello.  This is a test.  This is a fun test!  First, we'll run a test, then we'll check the results.  A test is currently running."
Run Code Online (Sandbox Code Playgroud)

我希望如果我们对单词进行 GROUP BY 操作,单词“test”的计数将为 4,但使用上面的查询 test 只会计数一次。如果分隔符字段接受类似于下面的 REGEXP,那就太好了,但我认为这是不可用的,或者语法尚未发布。

SELECT 
    split(commit_message, "[\W]+") as words,
FROM [project:dataset.table] 
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,如果检测到一个或多个非单词字符,这些字符都将被视为分隔符。如果这个功能不存在,是否可以考虑在未来进行改进?此时,我需要获取“单词”列中的结果并删除所有非单词字符以获得我想要的结果。(见下文)

SELECT
    LOWER(REGEXP_EXTRACT(words, r'(\w+)')) as words
FROM
    (
    SELECT 
        split(commit_message, " ") as words,
    FROM …
Run Code Online (Sandbox Code Playgroud)

google-bigquery

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

是否有可用的FORMAT_STRING或TEXT函数?

大约两年前,我还看过另一篇有关FORMAT_STRING的文章。我正在寻找类似的内容,因此,如果我有一个字符串,如123456789,我将能够对其进行格式化以包括适当的逗号,使其看起来像123,456,789

在Google表格中,有一个TEXT函数可以启用多种格式。如果要在Google表格中执行此操作,则可以=TEXT("123456789", "#,##0")。是否有某个功能或计划具有一个功能来启用文本格式设置(例如Google表格TEXT功能中存在的功能)?在许多情况下,当我创建报表并需要将FLOAT或INTEGER数据格式化为字符串以便与其他字段连接时,这会派上用场,而在适当的地方仍保留逗号或百分比。

google-bigquery

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

标签 统计

google-bigquery ×3