问题标签 [lateral]
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 - 从多次调用返回记录的函数创建表
我有一个函数可以根据开始和停止时间戳对一系列数据进行一些基本统计:
这适用于简单的单一选择,例如:
但现在我无法创建另一个函数,甚至是一个可以组合多次调用“cal”函数的选择语句。例如,我想返回一个包含三个时间段的表。所以返回将是 4 列乘 3 行:
postgresql - 不涉及集合返回函数的横向用例
前几天我在看这篇文章:
http://blog.heapanalytics.com/postgresqls-powerful-new-join-type-lateral/
我怀疑帖子中的一些说法可能不准确。特别是这个:
“如果没有横向连接,我们将需要求助于 PL/pgSQL 来进行这种分析。或者,如果我们的数据集很小,我们可以摆脱复杂、低效的查询。”
sum(1)
and方法对order by time limit 1
我来说似乎不太理想,我认为这种分析可以用正常的左连接而不是横向左连接来完成。所以我想出了一个概念证明:
https://github.com/ajw0100/snippets/tree/master/SQL/lateral
我在自述文件中的结论是否正确?横向连接的子查询之外
select...from...where
的任何东西都会强制嵌套循环吗?在那种情况下,横向真的只对文档建议的集合返回函数有用吗?有谁知道横向的任何不涉及集合返回函数的用例?
sql - JOIN 集合返回函数结果
我正在尝试加入返回行的表和函数:
此函数为每个 id 返回 0、1 或更多行。该查询适用于 PostgreSQL 9.3,但在9.1上显示以下错误:
我无法将计算从函数移到查询中。
据我了解,我不能使用JOIN LATERAL这是 9.3 中的一个新功能。
这个问题有什么解决方法吗?
postgresql - 如何在 PostgreSQL 中将 CASE 语句与 LATERAL JOIN 结合起来?
我需要为每个选择行多次调用一个函数,因为函数有几个 OUT 参数,所有这些都是我需要的
例如
仅在我使用横向连接时调用此函数
问题是万一a
可以为空。func
抛出异常被 null 调用。然后没有加入我会这样做
但是我怎么能使用它来实现它lateral joins
呢?有没有办法在横向连接中使用 CASE?或者有没有其他方法可以只调用一次程序?
hadoop - 我可以在 Hive 中进行 LEFT JOIN LATERAL 吗?
我想在 Hive 中进行横向连接。有没有办法支持这一点?本质上,我想将 LHS 上的行中的值用作 RHS 上任意 SQL 的参数。
这是 Postgres 的一个示例:(请原谅我的粗略示例):
sql - 加入 id 或 null 并获得第一个结果
我创建了以下查询:
样本数据:
我想从中获得的LEFT JOIN
是 NULL store_id 的数据(全局计划条目 - 影响所有商店条目)或给定 store_id 的实际数据。
像这样加入查询,返回具有正确顺序的结果,但对于 NULL 和 store_id 匹配。在 join 子句上使用 OR 语句是有意义的。
预期成绩:
当前结果:
如果在这个主题上有更优雅的方法,我会很高兴遵循它。
sql - 如何为旧 PostgreSQL 版本重写 SELECT ... CROSS JOIN LATERAL ... 语句?
我面临类似这样的查询:
... 其中 partition_into_months 的定义类似于:
因此,我正在为辅助表使用可变间隔进行交叉连接,因此使用(冗余)关键字 LATERAL。
这适用于 PostgreSQL 9.3.6 和 9.4.2,但是,对于 9.1.3,我收到以下错误消息:
指示的位置是表达式“i.start_date”中的点。
如何重写此 SQL 查询以将其移植回 PostgreSQL 9.1.3 ?
sql - Postgres中的GROUP BY - JSON数据类型不相等?
我在匹配表中有以下数据:
我想按名称选择表中每个最后一个不同的团队。即我想要一个将返回的查询:
因此,上次该团队出现在表格中的每个团队。
我一直在使用以下(从这里):
但这会返回:
我知道 Postgres没有 JSON 相等性。我只需要球队名称(一个字符串)的相等性,该球队的球员不需要进行比较。
谁能建议另一种方法来做到这一点?
以供参考:
返回:
编辑:我投到text
并关注这个问题,我用DISTINCT ON
而不是GROUP BY
. 这是我的完整查询:
返回我上面想要的。有没有人有更好的解决方案?
sql - 展平与数组的关系以每个数组条目发出一行
给定一个这样定义的表:
...以及以下值:
我正在尝试查找将返回的查询:
我已经查看了有关访问数组的上游文档,并试图考虑使用该unnest()
函数的解决方案会是什么样子,但一直都是空的。
即使在除了要扩展的数组之外还有大量列且没有主键的情况下,理想的解决方案也很容易使用。处理具有多个数组的情况并不重要。
sql - 与表中定义的多个范围的列匹配的子查询
我有一个非常常见的地址数据库设置:aperson
与company
带有连接表的 a 相关联,company
可以有 anaddress
等等。
所有这些都非常规范且易于使用。但是对于搜索性能,我正在创建一个物化的,而不是非规范化的视图。我只需要一组非常有限的信息和快速查询。通常通过连接表完成的大多数事情现在都在一个数组中。根据查询,我可以直接搜索或通过unnest
.
作为对我的zipcodes
列 ( varchar[]
) 的补充,我想添加一个states
已经预先计算了(德国联邦)状态的列,这样我就不必转换查询以包含各种范围比较。
我的映射日期在这样的表中:
每个州都有多个范围,并且范围可以重叠(一个邮政编码可以用于两个不同的州)。有些范围有range_start = range_end
.
现在,我对如何一次将其全部变为物化视图有点不知所措。通常,我很想迭代地做它(通过触发器或在应用程序级别)。或者因为我们只是在谈论 5 位数字,我可以创建一个大表映射 zip 来直接声明,而不是通过一个范围来做(我目前最喜欢的,但丑陋到足以让我问是否有更好的方法)
有什么方法可以在 SQL 中使用上面的表(或类似的表)来做到这一点?我在 postgres 9.3,所有功能都允许......
为了完整起见,这里是邮政编码的子查询: