问题标签 [postgresql-8.0]

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

postgresql - PostgreSQL 中的优化查询

假设您有一个名为 tracker 的表,其中包含以下记录。

我需要以下结果

我正在尝试这个查询

但是,这只给了我

这个记录。

但是,我想要所有唯一的记录(change_id)

(a) max(ingest_date) 和

(b) 动词列优先级为(2 - 第一个首选,1 - 第二个首选,3 - 最后一个首选)

因此,我需要以下结果

请帮助我有效地查询它。

PS:我不会索引 ingest_date,因为我将在分布式计算设置中将其设置为“分发密钥”。我是数据仓库和查询的新手。

因此,请帮助我以优化方式访问我的 TB 大小的数据库。

0 投票
2 回答
6279 浏览

postgresql - Redshift PostgreSQL Distinct ON 运算符

我有一个要解析的数据集以查看多点触控归因。该数据集由响应营销活动的潜在客户及其营销来源组成。

每个潜在客户都可以响应多个活动,我希望在同一个表中获得他们的第一个营销来源和最后一个营销来源。

我在想我可以创建两个表并使用两者的 select 语句。第一个表将尝试创建一个包含每个人的最新营销来源的表(使用电子邮件作为他们的唯一 ID)。

然后我会创建一个包含重复数据删除电子邮件的表格,但这次是针对第一个来源。

最后,我想简单地选择电子邮件并将第一个和最后一个市场来源加入到各自的列中。

由于 distinct on 不适用于 redshift 的 postgresql 版本,我希望有人有想法以另一种方式解决这个问题。

编辑 2/22:有关更多背景信息,我正在与他们回应的人员和活动打交道。每条记录都是一个“活动响应”,每个人都可以有多个来源的多个活动响应。我正在尝试制作一个选择语句,该语句将按人进行重复数据删除,然后分别为他们响应的第一个广告系列/营销来源和他们分别响应的最后一个广告系列/营销来源提供列。

编辑 2/24:理想的输出是一个有 4 列的表:email、last_source、first_source、date。

第一个和最后一个源列对于只有 1 个活动成员记录的人是相同的,而对于拥有超过 1 个活动成员记录的每个人来说是不同的。

0 投票
4 回答
14491 浏览

amazon-web-services - REDSHIFT:如何生成一系列数字而不在 redshift (Postgres 8.0.2) 中创建名为“数字”的表?

我需要为报告创建一个空的时间表系列,以便我可以将多个表中的连接活动留给它。一天中的每个小时都不一定有数据,但我希望它显示空或零表示不活动,而不是省略一天中的那个小时。

在更高版本的 Postgres(8.0.2 之后)中,这在几个方面很容易:

SELECT unnest(array[0,1,2,3,4...]) as numbers

或者

CROSS JOIN (select generate_series as hours from generate_series(now()::timestamp, now()::timestamp + interval '1 day', '1 hour'::interval )) date_series

Redshift 可以运行其中一些命令,但是当您尝试将它与任何表一起运行时会引发错误。

我需要的:

生成一系列数字(例如 0-23)作为将在 redshift 上运行的子查询的可靠方法(使用 postgres 8.0.2)。

0 投票
1 回答
104 浏览

date - Postgresql 中的日期间隔未显示正确结果

运行此查询时:

我得到一张这样的桌子:

但是如果我使用这个查询:

我得到一张这样的桌子:

请注意从底部开始的第 1 行和第 3 行中的不同结果。正确的应该是最后一个查询返回的那个。

我需要的是在几天内得到结果,并带有两位小数(如第一个表中),但数据正确(如第二个表)。另外,我需要结果中没有“天”的数据,只需要带有两位小数的值。

我怎样才能做到这一点?

我正在使用:i686-pc-linux-gnu 上的 PostgreSQL 8.0.2 版本,由 GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)、Redshift 1.0.1232 编译

0 投票
2 回答
213 浏览

sql - sql 查找模式并计算它出现的次数

数据给

这是表中的列。使用 sql 查询,我们需要找出模式,例如 22 36 54 40 是第一个模式,然后 22 36 是第二个模式,22 54 是第三个模式。

0 投票
2 回答
378 浏览

sql - 如何使用窗口函数 - PostgreSQL 中的困难案例

我有一个如下表:

我想创建一个排名,它将显示促销范围。所以我需要有相同的数字进行促销和促销后的每一个动作:

我阅读了有关窗口函数及其可能性的信息(例如 over()),但我只能通过“操作”创建分组排名。

0 投票
2 回答
1761 浏览

postgresql - PostgreSQL 8.0 中的 SSL 连接错误

我们有一个连接到 PostgreSQL 8.0、9.0 或 9.5(不同客户端的不同版本)的应用程序。最近我们决定添加 SSL 连接以提高安全性。在 9.0 和 9.5 上一切似乎都很好,但在 8.0 中则不然。

这是我测试连接的方法(我将比较 8.0 和 9.0 的设置,因为它们非常相似)。我正在本地机器上测试连接,它是在本地完成的,只是为了测试所以不要告诉我为 localhost 关闭 ssl,这不是我正在寻找的答案。

我已经准备好所有需要的证书。服务器端:

我已将这些文件放在 9.0 和 8.0 PostgreSQL 安装的 \data 文件夹中。

我有客户证书:

它们位于同一台机器上的 \appdata\Roaming\postgresql 文件夹中。

我在 8.0 和 9.0 中都编辑了 postgresql.conf 并设置了这个选项:

ssl = on(我也试过 ssl = true )

在 pg_hba.conf 我只有一个连接选项:

9.0:

8.0

在 8.0 中,我使用“md5 clientcert=1”,因为没有“cert”选项(我也尝试了“trust”和“md5”)并且我也尝试了不同的地址 - ::1/128,甚至是“all”。结果始终相同 - 如果 hostssl 选项是唯一可用的,我将无法连接到 8.0 服务器。我收到此错误:

我连接到 9.0(和 9.5)没有问题。我使用 PgAdmin III 尝试连接,因为如果我使用它进行连接,我也可以使用应用程序连接到服务器。

有谁知道为什么我不能通过 SSL 连接到 PostgresSQL 8.0?

0 投票
2 回答
398 浏览

postgresql - “(”处或附近的语法错误 postgresql + Python

我正在使用 Jupyter 笔记本来处理一些带有 postgresql 的数据库我有以下实例:

但我得到了这个错误:

为什么复制句子有错误? 我正在使用 Postresql 8.0.2

0 投票
0 回答
36 浏览

mysql - 复制表时,从原始表中镜像已删除记录的最佳方法是什么?

语境

假设有表 A。表 B 通过对仅包含表 A 上的更新记录的文件使用 upsert 语句复制表 A。很容易判断表 A 记录的位置是否已更新,因为它将反映在显示所述记录的最后修改日期的列。但是,表A没有任何迹象表明是否有任何记录被删除(由于该表包含大量活动记录,因此没有一个标志列显示该记录是否被删除)。如果一条记录被删除,则该记录在尝试获取它时将不再显示。

当前解决方案

因此,鉴于上述情况,在我对表 B 进行 upsert 之后,我发现到目前为止,要镜像从原始表中删除的记录,我必须下载表 A 中当前可用的主键列的完整列表的文件以创建表C 并使用它与表 B 上的主键进行内部连接。

更好的解决方案?

我的问题是:有没有更好的方法来做到这一点,我不必下载表 A 中当前可用的主键列的完整列表的文件?

0 投票
1 回答
48 浏览

postgresql - SAS 到 PostgreSQL(PADB) 代码 - 求和字段(如果存在)

我遇到了来自 SAS 的一段代码的挑战,我需要将其转换为 SQL。通常我很擅长这一点,但不是我面临新的挑战,到目前为止,我解决它的所有想法都失败了,我没有找到正确的方法。

我需要能够为此请求动态获取字段,例如如果字段的名称中有某种模式,我需要对这些字段求和。

我的 PostgreSQL 版本是 8.0.2,PADB 5.3.3.1 78560

所以表可能有也可能没有像bas_txn_03cibc_vcl.

' ' as bas_txn_03cibc_vcl我写了一个函数,当在 information_schema 表中找不到该字段时应该输出并bas_txn_03cibc_vcl在找到时使用。

但是当我执行命令时,我得到了 UDF 不能用于 PADB 表的错误。

“错误:XX000:用户定义的 SQL 语言函数“check_if_field_exists(字符变化,字符变化,字符变化)”不能在引用 PADB 表的查询中使用。”

现在我正在使用存储过程构建一种新方法,但它会限制用例。关于如何动态选择字段的任何其他想法?

功能:

然后我会像这样使用它

该函数将返回 '' 作为 tot_txn_03AMX_AMXE 或简单地返回 tot_txn_03AMX_AMXE.... 的想法是,如果该字段不存在,则使查询不返回错误。

就像我说的那样,我需要一个新的功能或方法,因为这个不起作用......