问题标签 [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 - Postgres 类似于 SQL Server 中的 CROSS APPLY
我需要将为 MS SQL Server 2005 编写的 SQL 查询迁移到 Postgres 9.1。在此查询
中替代的最佳方法是什么?CROSS APPLY
GetCitizenRecModified()
函数是表值函数。我不能放置这个函数的代码,因为它真的很大,计算起来很困难,我不能放弃它。
postgresql - 错误:表单中的函数表达式不能引用相同查询级别的其他关系:如何解决 LATERAL
当然,这个问题纯粹是假设性的,我还没有愚蠢到试图在 DBMS 中计算素数表。但问题仍然存在:有没有一种干净的方法来解决没有 的问题LATERAL
?
正如你所看到的,我尝试了一个视图(不起作用),围绕这个视图的函数(也不起作用),这个函数中的一个临时表(njet),并调整了函数的属性。
下一步可能是一些触发黑客(但我真的非常讨厌触发器,主要是因为它们对于 DBMS 模式的严格性是不可见的)
sql - 在 LEFT OUTER JOIN 中使用存储过程返回 SETOF 记录
我正在尝试在左外连接中调用存储过程传递参数,如下所示:
compute_prices()
返回一组记录。
这是 postgres 显示的消息:
错误:对表“i”的 FROM 子句条目的引用无效
...左加入 compute_prices( i.id ,current_date)...
提示:表“i”有一个条目,但不能从这部分查询中引用它。
这种查询在 Firebird 中有效。有没有一种方法可以通过仅使用查询来使其工作?我不想创建另一个循环遍历项目并单独调用compute_prices()
.
sql - 返回多列的plpgsql函数被多次调用
我正在运行 PostgreSQL 9.2.1 并有一个返回 3 列的 plpgsql 函数。它被称为这样(简化):
该函数打印出一条警告消息,我惊讶地发现它打印了 3 次。看起来该函数被调用了 3 次 - 大概每列一次。这对性能没有好处!我怎样才能确保它只被调用一次?它已被标记为 STABLE。
如果我称它为
然后警告只打印一次,但我不知道如何将它集成到更大的查询中,并返回连接和其他列。也就是说,当我需要 FROM 列表中的其他表并且函数从这些表中获取输入时,我不知道如何将函数放入 FROM 列表中。
编辑:
查询(更接近原始):
my_aggregate_function
并且my_function
每个返回 3 列(border、lower_limit、upper_limit),但是my_aggregate_function
是一个聚合并且my_function
是一个常规函数。
sql - 查询 JSON 列中的数组元素
最近升级到使用 PostgreSQL 9.3.1 以利用 JSON 功能。在我的表中,我有一个 json 类型的列,其结构如下:
出于问题的目的,这只是虚拟数据。
是否可以根据 id 查询 emails 数组中的特定项目?
差不多:“返回 id=123 的电子邮件)”?
xpath - 蜂巢 - 横向视图爆炸 xpath
我有以下输入 XML:
请注意员工 1111 中缺少的名字
我正在执行以下选择:
预期结果:
请注意缺少名字的 NULL 值)
但是我得到以下结果:
第2222章 福尔摩斯
因为缺少员工 1111 的名字,所以我没有让第一个员工回到我的查询中。有没有办法按照预期结果中的指示取回两个员工数据,其中名字设置为 NULL 和/或缺少空格时?请帮忙。谢谢,
sql - 使用 group by 查找数组中最常见的元素
我有一个具有以下结构的行表,name TEXT, favorite_colors TEXT[], group_name INTEGER
其中每一行都有一个每个人最喜欢的颜色的列表以及该人所属的组。我怎样才能GROUP BY group_name
返回每组中最常见颜色的列表?
你能做一个组合int[] && int[]
来设置重叠,int[] & int[]
得到交叉点,然后再计算和排名吗?
join - 侧视图爆炸给出笛卡尔积
我有一个数据集,如:
我正在使用查询:
这给了我一个 id 和 speed 的笛卡尔积。有人可以建议我应该如何摆脱这个。
sql - 使用另一个查询的输出动态执行查询
我有一个名为 generate_table 的函数,它需要 2 个输入参数(rundate::date
和branch::varchar
)
现在我正在尝试使用 PLPGSQL 处理第二个函数,它将获取所有分支的列表和每个分支的最新日期,并将其作为参数传递给 generate_table 函数。
我的查询是这样的:
结果是:
我需要的是函数运行这样的东西
我已经阅读了很多关于 PLPGSQL 的内容,但到目前为止我只能说我几乎不了解基础知识。
我读到可以使用串联来将所有值放在一起,然后在函数中使用 EXECUTE,但我无法使其正常工作。
关于如何做到这一点的任何建议?
sql - 查询 JSON 类型内的数组元素
我正在尝试测试json
PostgreSQL 9.3 中的类型。
我有一个json
名为data
的表中的列reports
。JSON 看起来像这样:
我想在表中查询与“objects”数组中的“src”值匹配的所有报告。例如,是否可以在数据库中查询所有匹配的报告'src' = 'foo.png'
?我成功编写了一个可以匹配的查询"background"
:
但由于"objects"
有一系列值,我似乎无法写出有效的东西。是否可以在数据库中查询所有匹配的报告'src' = 'foo.png'
?我已经查看了这些来源,但仍然无法得到它:
- http://www.postgresql.org/docs/9.3/static/functions-json.html
- 如何使用新的 PostgreSQL JSON 数据类型中的字段进行查询?
- http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-highlight-json-operators/
我也尝试过这样的事情,但无济于事:
我不是 SQL 专家,所以我不知道我做错了什么。