问题标签 [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.
sql - BigQuery 中的日期比较
我正在尝试过滤掉查询中的某些日期。我在查询中使用的代码行如下:
我们的想法是获取 2017 年年初至今的所有数据,以及对应于同一天的 2016 年数据。因此,如果我要运行我想要的正确版本,它将返回所有年初至今的数据,以及截至 2016 年 11 月 16 日的所有 2016 年数据。
但是,每当我在 WHERE 子句中使用 this 运行查询时,我的查询仍然返回不符合我描述的参数的日期。我可能遗漏了一些完全明显的东西,但这让我发疯了。有没有一种特殊的方法来过滤我错过的日期?
编辑:这是我的一些数据
我为自己添加了今天的行,以确保日期格式没有差异。有了这个数据,中间部分的底部 3 行不应该返回,但它们是。其他一切都应该符合我设置并返回的参数。
感谢任何和所有的帮助。谢谢!
sql - Google BigQuery 中标准 SQL 和旧版 SQL 输出之间的差异
我有一个以旧 SQL 模式编写的查询,我想将其重写为 StandardSQL。它有一些内部连接,standardSQL 有一些地方我必须使用 UNNEST 函数(一行 transactionID 中的产品 ID 数组)来取消嵌套数据。
然而,在重写和比较输出之后,我注意到标准 SQL 中的行数略少(194310 与 193907)。
发生这种情况是否有任何一般原因,以及如何避免这种情况?
sql - 我想在大查询中加入两个具有公共列的表?
要加入表,我使用以下查询。
查询有效,但连接表只有两列 uservalue1 和 uservalue2。我想保留两个表中的所有列。知道如何实现吗?
sql - group_concat 函数删除重复项
在 BigQuery 中创建了以下查询:
作为临时措施,我使用 having 子句对其进行测试(这将在生产中删除)查询输出以下内容:
这一切都很好并且按预期工作,以适当的顺序输出设备(平板电脑,平板电脑,平板电脑,手机,桌面) - 但是,我想从中删除重复项,所以结果将是“平板电脑,手机,桌面”
我尝试使用 Unique() 函数,这会删除重复项,但是顺序不会保留,因此输出变为“桌面、移动、平板电脑”
任何帮助,将不胜感激!
更新
我将查询更新为标准 SQL,现在使用 string_agg() 函数遇到了另一个问题:
返回的错误是“具有 DISTINCT 和 ORDER BY 参数的聚合函数只能 ORDER BY 作为函数参数的列”
显然,如果我们从 string_agg 中删除 distinct 或 order by 子句,这是可行的,但我们需要这两个操作。
google-bigquery - 如何在 bigquery 中创建标准 SQL 表
我刚刚检查了 Web UI,创建了一个空表,所有暴露的数据类型都是旧的 SQL 数据类型。然后我检查了bq mk
,我看不到任何设置标准 SQL 标志的选项。
更奇怪的是,如果我使用标准 SQL 数据类型创建表,
它创建了一个带有 的表value INTEGER
,稍后我将深入研究 ARRAY 和 STRUCT 数据类型的行为。有什么明显的我失踪了吗?
google-bigquery - BigQuery - 旧版 SQL:如果今天是星期一回溯 3,如果不是回溯 1
使用 BigQuery 和旧版 SQL。如果当前日期是星期一,我正在尝试修改我的 WHERE 语句以回顾 3 天,否则回顾 1。
我无法弄清楚如何做到这一点。
目前我只是想看看日期是否是当前日期-1。
当前代码:
任何指导将不胜感激。
沿着这些思路思考一些事情(注意:这不起作用)
google-bigquery - 使用 BigQuery LegacySQL 处理数组
我表中的每一行都有一个作为数组的字段,我想从第一个数组条目中获取一个字段。
例如,如果我的行是
我想得到
user_id:123,content_group:my_group,timestamp_1517584420597000
sql - 计算SQL中特定事件之前和之后的事件数?
我有一个包含日期和事件的表格。有一个名为“A”的事件。我想知道在 Sql Bigquery 中事件“A”之前和之后发生了多少事件。例如,
答案是这样的。
我尝试了很多查询,但它不起作用。任何想法,如何解决这个问题?
sql - 如何在 SQL Bigquery 中的另一个事件之前计算特定事件的数量?
我有一个包含日期、事件和用户的表格。有一个名为“A”的事件。我想找出特定事件在 Sql Bigquery 中事件“A”之前和之后发生了多少次。例如,
输出将是这样的
我必须计算的事件包含一个特定的前缀。意味着我必须检查以( XY 然后是某个事件名称)开头的事件。所以,XYSomeEvent 是我必须设置计数器的事件。有什么建议么?