问题标签 [legacy-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 回答
2280 浏览

sql - BigQuery 中的日期比较

我正在尝试过滤掉查询中的某些日期。我在查询中使用的代码行如下:

我们的想法是获取 2017 年年初至今的所有数据,以及对应于同一天的 2016 年数据。因此,如果我要运行我想要的正确版本,它将返回所有年初至今的数据,以及截至 2016 年 11 月 16 日的所有 2016 年数据。

但是,每当我在 WHERE 子句中使用 this 运行查询时,我的查询仍然返回不符合我描述的参数的日期。我可能遗漏了一些完全明显的东西,但这让我发疯了。有没有一种特殊的方法来过滤我错过的日期?

编辑:这是我的一些数据

我为自己添加了今天的行,以确保日期格式没有差异。有了这个数据,中间部分的底部 3 行不应该返回,但它们是。其他一切都应该符合我设置并返回的参数。

感谢任何和所有的帮助。谢谢!

0 投票
0 回答
122 浏览

sql - Google BigQuery 中标准 SQL 和旧版 SQL 输出之间的差异

我有一个以旧 SQL 模式编写的查询,我想将其重写为 StandardSQL。它有一些内部连接,standardSQL 有一些地方我必须使用 UNNEST 函数(一行 transactionID 中的产品 ID 数组)来取消嵌套数据。

然而,在重写和比较输出之后,我注意到标准 SQL 中的行数略少(194310 与 193907)。

发生这种情况是否有任何一般原因,以及如何避免这种情况?

0 投票
2 回答
6946 浏览

sql - 我想在大查询中加入两个具有公共列的表?

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

查询有效,但连接表只有两列 uservalue1 和 uservalue2。我想保留两个表中的所有列。知道如何实现吗?

0 投票
2 回答
743 浏览

sql - group_concat 函数删除重复项

在 BigQuery 中创建了以下查询:

作为临时措施,我使用 having 子句对其进行测试(这将在生产中删除)查询输出以下内容:

在此处输入图像描述

这一切都很好并且按预期工作,以适当的顺序输出设备(平板电脑,平板电脑,平板电脑,手机,桌面) - 但是,我想从中删除重复项,所以结果将是“平板电脑,手机,桌面”

我尝试使用 Unique() 函数,这会删除重复项,但是顺序不会保留,因此输出变为“桌面、移动、平板电脑”

任何帮助,将不胜感激!

更新

我将查询更新为标准 SQL,现在使用 string_agg() 函数遇到了另一个问题:

返回的错误是“具有 DISTINCT 和 ORDER BY 参数的聚合函数只能 ORDER BY 作为函数参数的列”

显然,如果我们从 string_agg 中删除 distinct 或 order by 子句,这是可行的,但我们需要这两个操作。

0 投票
1 回答
454 浏览

google-bigquery - 如何在 bigquery 中创建标准 SQL 表

我刚刚检查了 Web UI,创建了一个空表,所有暴露的数据类型都是旧的 SQL 数据类型。然后我检查了bq mk,我看不到任何设置标准 SQL 标志的选项。

更奇怪的是,如果我使用标准 SQL 数据类型创建表,

它创建了一个带有 的表value INTEGER,稍后我将深入研究 ARRAY 和 STRUCT 数据类型的行为。有什么明显的我失踪了吗?

0 投票
1 回答
172 浏览

google-bigquery - BigQuery - 旧版 SQL:如果今天是星期一回溯 3,如果不是回溯 1

使用 BigQuery 和旧版 SQL。如果当前日期是星期一,我正在尝试修改我的 WHERE 语句以回顾 3 天,否则回顾 1。

我无法弄清楚如何做到这一点。

目前我只是想看看日期是否是当前日期-1。

当前代码:

任何指导将不胜感激。

沿着这些思路思考一些事情(注意:这不起作用)

0 投票
1 回答
497 浏览

google-bigquery - 使用 BigQuery LegacySQL 处理数组

我表中的每一行都有一个作为数组的字段,我想从第一个数组条目中获取一个字段。

例如,如果我的行是

我想得到

user_id:123,content_group:my_group,timestamp_1517584420597000

0 投票
4 回答
3092 浏览

sql - 计算SQL中特定事件之前和之后的事件数?

我有一个包含日期和事件的表格。有一个名为“A”的事件。我想知道在 Sql Bigquery 中事件“A”之前和之后发生了多少事件。例如,

答案是这样的。

我尝试了很多查询,但它不起作用。任何想法,如何解决这个问题?

0 投票
2 回答
1717 浏览

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

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

输出将是这样的

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

0 投票
2 回答
3529 浏览

google-bigquery - bigquery - 自定义字段上的分区 - 仅适用于标准 SQL?

我刚刚看到我可以custom partitioned在 BigQuery 中创建一个表。含义由任何timestamp列分区。

但是,新创建的表只能从中访问和查询StandardSQL

有没有办法从旧版查询新表?

在此处输入图像描述