问题标签 [lateral-join]

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 回答
65 浏览

sql - 两个不同的横向连接中的相同输出

我正在研究一些 PostgreSQL,以获取某些日期之间每个月的前 10 张和最后 10 张发票。我在横向连接中有意外的输出。首先,限制不起作用,每个array_agg聚合返回数百行而不是限制为 10 行。其次,聚合看起来是相同的,即使一个是有序ASC的,另一个是DESC

如何仅检索每个月组的前 10 张和后 10 张发票?

发票输出

0 投票
2 回答
645 浏览

sql - 使用子查询将 OUTER APPLY 重写为 Redshift

我将 sql server 脚本重写为 redshift 数据库查询

我有外部应用结构

但是 Redshift 没有外部应用。我如何正确地用 LEFT JOIN 重写它?

更新

我想像这样重写它

但这是正确的吗?

0 投票
2 回答
8744 浏览

sql - PostgreSQL 可以加入 jsonb 数组对象吗?

由于 JSON 支持,我正在考虑切换到 PostgreSQL。但是,我想知道,如果单个查询可以实现以下操作:

假设有两个表:

表 1) 组织:

表 2) 用户:

现在我想得到这样的结果(我只有组织的 ID [1]):

我知道这不是 JSONB 的用途,并且有一个更好的解决方案可以在 SQL 中存储这些数据,但我只是好奇它是否可能。

谢谢!

0 投票
2 回答
199 浏览

sql - 为什么带有 LIMIT 的横向连接会增加执行时间?

当我使用横向连接和LIMIT内部运行查询时,它使用嵌套循环连接。但是当我删除它时,LIMIT它使用哈希右连接。为什么?

 

但是当我为查询添加限制时,实际时间从 24 跳到 150:

 

0 投票
1 回答
69 浏览

sql - 在 Postgresql 中的两个表上使用横向

大家好,

我需要一点帮助来弄清楚如何lateral在 Postgresql 中跨两个表使用。我有两个表,studentcourse,以及一个函数student_course_assessment_info_by_course(student_id, course_id): course_assessment_info,它获取学生记录的 ID 和课程记录的 ID,并获取该学生的一些成绩信息,例如他们的平均成绩。我想使用这个函数来创建另一个函数,它会为所有在课程最低 gpa 分数范围内的学生students_near_gpa_minimum获取一个表格。student_id,course_id,gpa,minimum_gpa

到目前为止,我知道我应该能够使用该lateral程序在学生表上“每行”运行课程评估功能,但我很难弄清楚如何准确地做到这一点,因为评估功能需要学生 id 和课程编号。我在下面的函数抱怨课程列不存在——这是真的。我还需要迭代可用的课程。

我知道这可以通过查询所有数据然后用 C++ 之类的语言计算结果来相当容易地解决,但我正在尝试正确处理 SQL,我觉得如果我了解如何执行这种操作这将是非常有益的。再说一次,也许这真的是应该在 sql 之外完成的事情。

任何帮助表示赞赏,谢谢!

这样可行!

0 投票
2 回答
603 浏览

sql - 过滤视图时如何利用基础索引?

我有一个非常简单的查询,执行速度非常慢,原因是它在执行 JOIN后对视图进行扫描。看到这一点我有点惊讶,因为我希望 Postgres在加入之前进行过滤,看到其中一个基础表在要过滤的列上有一个 INDEX。

有没有办法我可以以某种方式重新排序查询或提示计划者如何以不同的方式进行查询?

请注意,我确实知道如何通过直接访问基础表来解决这个问题,但是视图隐藏了一些复杂性,最好避开查询。

查询

解释分析

TABLE 和 VIEW 定义

编辑: 有人发布了一个答案(随后被删除),其中包含一个重要的信息:即使encounter_id基础表中的列被索引,ORDER BY视图中的操作也违背了它的目的。不幸的是,我们无法摆脱自己,ORDER BY因为它是 DISTINCT ON工作所必需的。

0 投票
2 回答
178 浏览

sql - 条件和的左连接横向

我有一个包含客户、产品和类别的购买数据集。

对于每种产品,我想要至少购买该产品一次的客户在该产品上花费的销售价值与在该产品类别上花费的销售价值之间的比率。

另一种说法:fries以至少购买过一次的客户为例,计算 A) 花费在的销售价值fries的总和和 B) 花费在的销售价值的总和food

中间表将采用以下形式:

示例:人们至少购买aerosol过一次,在该产品上总共花费了 1800。总体而言,相同的人在该air_care类别(aerosol属于)上花费了 3600。因此,比率为aerosol0.5。

我尝试使用left join lateral并计算每个给定的中间结果来解决这个问题product,但我无法理解如何包含条件only for customers who bought this specific product

上面的查询列出了每个产品在产品类别上的花费总和,但没有所需的产品购买者条件。

left join lateral正确的方法吗?普通 SQL 中还有其他解决方案吗?

0 投票
2 回答
376 浏览

postgresql - 如何横向加入函数

我不确定我的问题是否正确,但这就是我想要做的。

我有一个errorlog带字段的表,link我有一个函数http_get(基于pgsql-http它给了我statuslink

我相信我需要像这样进行横向连接:

但这并没有给我任何结果。如何将这样的功能应用于表格?

errorlog桌子:

pgsql-http: https://github.com/pramsey/pgsql-http

更新: 我试过这些查询:

结果:No records found.

结果:No records found.

但是,这有效:

select * from http_get('http://test.com')

0 投票
1 回答
97 浏览

postgresql - 在 postgresql 的循环内生成随机数

我想执行几次(比如说 30 次)一个涉及随机数的“实验”

我的方法是:

您可以将其解读为“执行 30 次实验”。

问题是该代码生成了 30 个确切的数字。

注意:“实验”部分显然更复杂,但在其中的某个地方,每次实验运行都会产生数百个随机数。即我想生成数百个随机数,30 次。这很重要,因为我知道我可以执行

并获得 30 个不同的随机数,但这不是我打算做的。

0 投票
2 回答
548 浏览

sql - 如何创建 SQL 查询以使用 1 个属性对 JSON 数组进行排序?

我有一个表,其中有一列包含一个 JSON 正文,该正文具有我想要根据与该数组关联的属性进行排序的数组。

我尝试选择数组名称并显示将显示整个数组的属性

列名my_column和 JSON 格式如下 -

我希望输出基于最高值,sortNum因此查询应显示 Tim Horton 的属性。我玩过的代码如下,但在尝试基于 sortNum 进行查询时出错。