问题标签 [postgres-9.6]

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 投票
1 回答
45 浏览

sql - PostgreSQL 将多个查询输出到数组中

在 postgreSQL 9.6 中工作:

我有许多选择语句,每个语句都输出一行

例如选择 8 作为“ColA”,选择 20 作为“ColB”,选择 13 作为“ColC”

我需要将它们放入一个数组中,例如:

我已经尝试了很多种 row_to_json、array_to_json 等,但没有任何乐趣,有人可以帮忙吗?


我尝试过的实际代码比上面描述的要复杂一些,但数据的结构不是......这是我现有的代码(只是为了表明我有

0 投票
0 回答
131 浏览

sql - 在 Postgres 中使用递归 CTE 构建 AST

给定下表:

我如何计算最终的 AST:AND(NOT(AND(K, OR(X, A, B))), OR(Y, Z))

我尝试了使用递归 CTE 的不同方法,但我的问题是 CTE 既不允许在 CTE 的递归部分进行聚合,也不允许在使用 CTE 的子查询中进行聚合。

我尝试的最新方法是:

但由于 CTE 的限制,它不起作用。

文档说 CTE 是图灵完备的,但我找不到计算所需结果的方法。我是否遗漏了什么或者我对图灵完整性的理解是错误的?:)

(我有 Postgres 9.6)

0 投票
1 回答
69 浏览

sql - 如何链接两个表,但只从 PostgreSQL 中的一个表中获取 MAX 值?

我有两张桌子

我想通过以下方式将这两个表链接到 1. currency 和 2. TIMESTAMP:

  • currintransactions必须等于curr1inexchange_rates
  • TIMESTAMPinexchange_rates必须小于或等于TIMESTAMPin transactions(所以我们只选择交易时相关的汇率)

我有这个:

但这链接了两个很多结果,因为输出的行数比transactions.

期望的输出:

背后的逻辑Converted Amount

  • 第 1 行:用户在 18:00 消费,因此在 01:30 取rate小于或等于TIMESTAMPinexchange_rates即 0.92 的欧元
  • 第 2 行:用户在 14:00 消费,因此在 01:20 取rate小于或等于TIMESTAMPinexchange_rates即 1.23 美元的金额
  • 第 3 行:用户在 01:00 消费,因此在 00:00 取rate小于或等于TIMESTAMPinexchange_rates即 0.89 欧元的金额

如何在 postgresql 9.6 中执行此操作

0 投票
0 回答
424 浏览

django - Django 测试正在删除生产数据,仅在一次运行所有测试时才有效

首先,这是 Django 1.9.13。我意识到这是一个不受支持的版本,但出于某种原因我必须使用它。数据库是postgres 9.6。

我有一个项目运行大约 40 个测试,分布在几个文件中。所有测试用例都是TransactionTestCase通过fixture = ['fixture_name.json'] 我在app/fixtures目录中使用类似于

基本数据用于大多数(如果不是全部)测试用例。但其他夹具用于 1 个或几个测试。

运行它的设置是

运行以下命令时,它运行良好

但是,当运行单个测试用例时,它会失败

这失败了

好像夹具被加载了两次。我试过检查 Django 正在使用的 SQL,发现有问题的对象只加载了一次。但是,该对象确实存在于<database>not<test_database>中。

这导致我进入问题的第二部分。

当我运行完整的测试套件时,它运行良好,甚至可以测试上述装置在自行运行时出错的情况。

但是,在成功运行测试套件后,后续测试套件运行失败,并且在检查<database>所有表时现在都是空的。我试图通过检查 SQL 查询来调试它,但日志在 4MB 后停止。而且由于我无法成功运行单个TestCase,我无法达到删除表行并查看可能会破坏数据库中数据的程度。

我已经搜索了我能找到的任何 Django 测试文档,但找不到任何可以解释为什么<database>在测试成功运行时被删除的原因,或者为什么单个测试用例会自行失败,但不能与完整的测试套件一起使用.

0 投票
1 回答
72 浏览

sql - 在 Postgres JSONB 字段中仅选择非 NULL 键

我有一个带有 JSONB 列的 postgres 9.6 表

如您所见,一些 JSON 键具有null值。

我想排除这些 - 有没有一种简单的方法可以SELECT只生成非null键值对:

谢谢!

0 投票
1 回答
131 浏览

postgresql - 全文搜索不产生结果

我有以下观点:

但是,如果profiles.tags 为空document,则即使其余字段(标题、简历和类别)包含数据也是如此。

是否有某种方法可以使该字段成为可选字段,以使其具有空数据不会导致空文档?

0 投票
1 回答
77 浏览

sql - 我希望一张桌子继承另一张桌子

我有 2 个 SQL 表说all_cities, regular_cities, (and capitol_cities)。

all_cities有 2 列 : name,population regular_cities有 2 列 : name,population capitol_cities有 3 列 : name, population,state

这些表已经创建。我想使用表分区连接它们,但首先我需要确保表regular_citiescapitol_cities继承自all_cities.

即使在创建表之后或仅在创建新表时,是否有这些表从另一个表继承?

0 投票
1 回答
149 浏览

postgresql - 多列索引不用于仅索引扫描,但部分索引是

我的问题是,当具有等效信息(我认为)的部分索引是时,为什么不将多列索引用于仅索引扫描。

桌子:

内容样本:

我需要运行的查询是:

现在,如果我使用部分索引。查询(最终)作为仅索引扫描执行:

我不明白的是:为什么以下形式的多列索引从不用于仅索引扫描?

查询不能访问标志True用于确定所有 id 的 btree 的所有连续叶子吗?

(请注意,元组可见性可能不是问题,因为仅索引扫描与部分索引一起使用i1。)

我的 Postgres 版本是:PostgreSQL 9.6.2 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit

0 投票
1 回答
232 浏览

postgresql - Postgres 9.6 - jsonb 列中特定字段的平均值,并按同一 jsonb 列中的另一个字段分组

我在这里显示了以下数据集

http://sqlfiddle.com/#!17/f9280/1

我想以我为每个键和类别获得平均排名的方式查询数据

例如,

  • 键 1,类别 10,avg_rank:95
  • 键 1,类别 20,avg_rank:75
  • 键 2,类别 11,av​​g_rank:105
  • 键 2,类别 12,avg_rank:80
  • 任何有关如何在 Postgres 上执行此操作的帮助或良好参考将不胜感激:)

    0 投票
    1 回答
    3866 浏览

    postgresql - postgres 9.6 - 从多列创建对象数组 JSON

    我这里有以下数据集

    http://sqlfiddle.com/#!17/70f9a/1

    我想创建一个查询,结果如下:

  • 键:1,avg_time_1:[{“category”:10,“avg_time”:10},{“category”:20,“avg_time”:20}],avg_time_2:[{“category”:10,“avg_time”: 20},{“类别”:20,“平均时间”:40}]
  • 键:2,avg_time_1:[{“category”:10,“avg_time”:10},{“category”:20,“avg_time”:60}],avg_time_2:[{“category”:10,“avg_time”: 50},{“类别”:20,“平均时间”:70}]
  • 这个想法只是以不同的方式重新呈现值 cols avg_time_1 和 avg_time_2(jsonb 值)