- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我明白使用
SELECT unnest(ARRAY[5,3,9]) as id
如果没有 ORDER BY
子句,则无法保证结果集的顺序。例如,我可以得到:
id
--
3
5
9
但是下面的请求呢:
SELECT
unnest(ARRAY[5,3,9]) as id,
unnest(ARRAY(select generate_series(1, array_length(ARRAY[5,3,9], 1)))) as idx
ORDER BY idx ASC
是否保证 2 个 unnest()
调用(具有相同的长度)将并行展开并且索引 idx
确实与数组中的项目?
我正在使用 PostgreSQL 9.3.3。
最佳答案
是的,这是 Postgres 的一个特性,并行取消嵌套保证是同步的(只要所有数组都具有相同数量的元素)。
Postgres 9.4 为并行 unnest 添加了一个干净的解决方案:
但是,不能保证结果行的顺序。实际上,用一个简单的语句:
SELECT unnest(ARRAY[5,3,9]) AS id;
行的结果顺序是“保证的”,但 Postgres 不断言任何东西。只要未明确定义顺序,查询优化器就可以随意对行进行排序。这可能会对更复杂的查询产生副作用。
如果您问题中的第二个查询是您真正想要的(向未嵌套的数组元素添加索引号),则有一个更好的方法 generate_subscripts() :
SELECT unnest(ARRAY[5,3,9]) AS id
, generate_subscripts(ARRAY[5,3,9], 1) AS idx
ORDER BY idx;
此相关答案中的详细信息:
您会对WITH ORDINALITY
感兴趣在 Postgres 9.4 中:
然后你可以使用:
SELECT * FROM unnest(ARRAY[5,3,9]) WITH ORDINALITY tbl(id, idx);
关于sql - PostgreSQL 中的并行 unnest() 和排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830991/
大家好,这次我遇到了一个新的数组分组错误,我将与您分享我正在咨询的表的架构,以便您告诉我解决方案。我尝试使用 ARRAY_TO_STRING 但在这种情况下它没有成功...... SELECT
有没有更简洁的 Pythonic 方法来取消嵌套这个字典列表? 示例: features = [{'annual_sales_revenue': {'definition': 'yearly reve
我正在尝试为一组以超前/滞后方式运行的过滤器创建绘图。 关于超前/滞后的简短描述: 当一个新的过滤器上线时,它被置于滞后位置,这意味着水在通过初级(又名铅)过滤器后通过它。当超前过滤器堵塞时,当前滞后
我正在尝试用另一张 table 制作一张 table 。原始表中有一行看起来像这样: ------------------------ | col1 | col 2 | col 3 | -------
Google Analytics BigQuery 表的结构如下(旧版 SQL 表示法 - 仅显示相关字段): visitId: INTEGER hits:
我正在尝试用另一张 table 制作一张 table 。原始表中有一行看起来像这样: ------------------------ | col1 | col 2 | col 3 | -------
我想创建一个 View ,并对 unnest 函数的每个结果进行一些数据处理。 在我的专栏 column2 中,我有: “12345” “123456” “12345,123456”或更多号码 我想做
保证函数 unnest() 将按这些顺序返回值,它们是如何定位的? 也就是说,例如: arr (INTEGER[]) --------------- {{3,5},{33,3}} 这个查询: SELE
自从更新到 tidyr 版本 1.0.0 以来,我在取消嵌套数据帧列表时开始遇到错误。 错误出现是因为列表中的一些数据框包含一列所有 NA 值(逻辑),而其他数据框包含相同的列但有一些字符值(字符)。
我无法弄清楚我的代码的哪一部分是错误的。 我使用了 UNNEST 函数,但错误消息仍然存在 在 Google Bigquery 中“无法访问类型为 ARRAY> 的值上的字段 productSKU”。
我对嵌套数据的概念相对较新,并试图了解正确的方法来扁平化 BigQuery ( https://support.google.com/analytics/answer/3437719?hl=en )
我有以下data.frame: df df id first.date second.date third.date fourth.date 1 1 2014-01-01 2015-01-0
我有一个物化 View (约 10 万行),其中有一个 intarray 列 feature_value_ids。我想要的是根据物化 View 的某些条件从该列中选择所有唯一 ID 此查询运行正常,大
假设我有一个可能重复的字符串数组 [a,a,b,c,a,b,c,d] 我想取消嵌套数组,以便我可以获得索引,以及该元素已在数组中取消嵌套的次数。我的所有数组都相对较短(25 个元素或更少)。 我的预期
这两个 Postgres 函数调用返回相同的结果,而我希望后者保留其嵌套数组结构。我该怎么做? SELECT * FROM unnest('{1, 10, 100, 2, 11, 101}'::int
我尝试了 this post 中的解决方案但我仍然遇到错误。 查询: SELECT unnest(team) FROM table_of_teams WHERE team LIKE '%akg%';
我正在尝试运行第 9.18 节中表 7.49 中的最后一个示例。数组函数和运算符 1 : SELECT unnest(ARRAY[1,2],ARRAY['foo','bar','baz']); 它抛出
给定一个不同的有序整数数组,我想取消嵌套数组并为每批连续整数分配一个组号。 例如:{2,3,5,7,8,9,10,20,21,25} 应该返回 elem | group_nr -----+------
我想写这样的东西 create index on thread(unnest(tags)); 但是我得到了错误 ERROR: index expression cannot return a set
我在一个 UDF 中有一个查询(如下所示),它 unnest() 是一个整数数组并针对它进行连接,我已经在我的 pgplsql UDF 中创建了一个本地临时表,因为我知道这一点作品。是否可以直接在查询
我是一名优秀的程序员,十分优秀!