问题标签 [sql-standards]

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 投票
2 回答
20851 浏览

arrays - BigQuery 标准 SQL:如何按 ARRAY 字段分组

我的表有两列,id并且a. 列id包含一个数字,列a包含一个字符串数组。我想计算给定数组的唯一 ID 的数量,数组之间的相等性被定义为“相同大小,每个索引的相同字符串”。

使用时GROUP BY a,我得到Grouping by expressions of type ARRAY is not allowed。我可以使用类似的东西GROUP BY ARRAY_TO_STRING(a, ","),但是然后将两个数组["a,b"]["a","b"]组合在一起,并且我丢失了数组的“真实”值(因此,如果稍后我想在另一个查询中使用它,我必须拆分字符串)。

这个字段数组中的值来自用户,所以我不能假设某些字符永远不会存在(并将其用作分隔符)。

0 投票
1 回答
233 浏览

google-bigquery - 具有编辑距离 UDF 的 BigQuery 查询引发错误

我正在尝试使用编辑距离算法比较文章之间的内容。我在标准查询中创建了一个 UDF。当文章数量较少时(例如 10 篇文章,总比较为 10X10 = 100),效果很好。

如果文章总数很大,比如 100(总比较是 100 x 100 = 10000)。BigQuery UI 引发以下错误:

错误:发生内部错误,无法完成请求。职位 ID:newspapers-142716:US.bquijob_cfbb316_161c359b4ec

我想知道是不是因为 BigQuery 在调用 UDF 时无法处理那么多数据。编辑距离算法不是“便宜”的操作,这也是原因吗?

为此目的使用 UDF 是正确的方法吗?还有其他选择吗?

下面是我的UDF代码:

0 投票
2 回答
36 浏览

mysql - JOIN 后多表选择

我有 4 张桌子:

其中3个具有相同的uniqueID字段..所以经过一番搜索,我发现我必须使用JOIN从3个表中获取我想要的数据,现在我需要添加第4个表,但是第4个表没有有uniqueID领域。

TB2中有一个名为id_emp的字段,现在我需要加入包含名称地址的TB4所以,我需要在查询结果中返回名称和地址!

任何帮助将不胜感激。

提前致谢

0 投票
1 回答
43 浏览

mysql - 以下哪条 sql 指令不是标准 SQL?

如果您可以与我分享一个学习所有标准 sql 的链接,我将不胜感激

0 投票
2 回答
43 浏览

sql - GroupBy + 条件

如果我有一张像

使用 SQL 标准,我们可以编写以下 if 条件:

如果对于(ID,开始,结束),代码是 A 和 B,则只打印带有 B 的记录。否则,打印记录。这是输出:

谢谢!

0 投票
1 回答
38 浏览

sql - 有没有办法使用 Visual Studio 进行符合 SQL 标准的查询?

我只是想知道是否有适用于 Visual Studio 2019 Professional 的 SQL 标准合规性验证器(可以设置为strict:只接受绝对合规的语法)。如果它也支持本机语言会很好,但我已经习惯了那种仅限 CLR的东西(我真的不知道为什么可能是因为链接......虽然我可能完全错了...我实际上不知道并猜测了)。

重要的是它需要符合标准,而不仅仅是符合 SQL 服务器。不在标准中的就是错误。

目标是制作完全独立于 DBMS 的 SQL 代码。感谢您花时间阅读我的问题。

0 投票
1 回答
65 浏览

mysql - 订购方式可以用吗?

我被教导了ORDER BYSQL 中用于排序查询的子句。我只了解了使用列名或表达式,但在查看 MariaDBhelp参考后SELECT,我看到了:

因此,我查看了他们的在线文档,并阅读了有关将列的整数位置提供给ORDER BY,而不是其名称的信息。

您还可以使用单个整数作为排序表达式。如果使用整数 n,则结果将按选择表达式中的第 n 列排序。1

当然,它很好用,我使用它也没问题,我和我的同学分享了它。后来,在浏览 Oracle MySQL 文档时,我发现它已被弃用:

不推荐使用列位置,因为该语法已从 SQL 标准中删除。2

这个特性是否有被完全从 SQL 中删除的危险,我应该停止使用它吗?

0 投票
1 回答
150 浏览

sql - Bigquery SQL 标准排名()

我不得不将我所有的旧 SQL 转换为标准 SQL。

在将其切换到标准 SQL 后,我尝试加入和 rank(),但收到一条错误消息:

“参数数量与分析函数 RANK 不匹配。支持的签名:RANK()”

这是否意味着函数 RANK() 在 SQL 标准中不起作用?Bigquery 突出显示“RANK(MILESTONE)”作为错误。

非常感谢您的帮助。

0 投票
1 回答
39 浏览

sql - 根据列重复字符串 - BigQuery/SQL 标准

这应该很容易,但我陷入了困境。

它像图像一样简单,但是我有一个名为“类别”的列,一旦该行有一个类别,我希望这个值在一个新列中重复 'n' 次,比如说 10 次(或我想要的任何值) .

我尝试使用FIRST_VALUE(),但没有关于何时出现此类别的模式,因此大多数时候我将“null”作为重复。

我见过ROW_NUMBER() OVER(PRECEDING AND FOLLOWING),但我不能在其中使用字符串,只是一个聚合,我不想计算,我想分类。我什至尝试使用CASE WHEN xxx category * 10 等,category + 10但当然不起作用。

有什么建议吗?谢谢!

我试过的:

图片说明在这里

0 投票
2 回答
50 浏览

sql - 在 2 个日期之间选择值时得到不正确的结果

我正在尝试运行以下查询以选择两个日期之间的一些结果,但由于条件不存在,我得到了结果。那么这里有什么问题呢?