问题标签 [postgresql-8.3]
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 - 用于 UNION 大量表的 SQL 脚本
在这个例子中,我必须对从 2012-12-17 到 2012-10-30 的大量不相交的每日表格进行联合。这里的代码变得丑陋是片段:
我可以用序列或 PL/PGSQL 函数来做这种事情,而不是手动写出每个单独的选择吗?
sql - 在 PostgreSQL 8.3 中实现总订单排名
8.3 的问题rank()
是在 8.4 中引入的。
考虑数字 [10,6,6,2]。
我希望获得排名等于行号的那些数字的排名:
部分解决方案是自连接并计算得分更高或相等的项目。这会产生:
但这不是我想要的。
有没有办法排名,甚至只是按分数排序,然后提取该行号?
sql - 参数化选择语句 PSQL 的输出
我使用的是基于 8.3 构建的 postgresql 版本。我基于特定的 IP 地址运行了大量查询,并希望创建一个函数,我可以将 IP 地址作为参数传递,类似于:
$$ 语言 sql;
问题是上面的查询没有以我习惯的表格格式返回 select 语句的输出。如果我将 10.10.0.1 作为 IP 地址输入传递给函数,如何让上面编写的脚本表现得像下面的 select 语句?
sql - 使用 generate_series() 修改 PL/pgSQL 函数
我正在开发一个不支持generate_series()
日期/时间序列函数变体的 PostgreSQL 8.3 版本。目前我有这个丑陋的解决方法,它使用第三个参数调用函数,例如:
我必须手动计算最后一个参数以确定generate_series()
.
修改此脚本以使函数调用中只需要两个参数的最佳方法是什么?
有没有办法修改下面的代码以同样的方式工作,只给这样的函数的两个参数?
更新:我尝试在下面的答案中提出很好的建议后修改我的代码,但仍然有一些错误:
python - 参数化创建表时的 PL/Python 错误
我正在运行一堆按 PostgreSQL 8.3 数据库上的日期参数化的清理脚本。
我只是想用几个日期变量参数化一堆代码并测试创建表给我以下错误:
警告:无法转储无法识别的节点类型:858861618
这是导致问题的代码:
如何使用 python 参数化一个简单的创建表脚本而不生成错误警告:无法转储无法识别的节点类型:858861618?
sql - 在 PostgreSQL 中编写一个仅在工作日选择数据的函数
我正在开发一个 Postgres 8.3 数据库。我使用的查询旨在仅选择工作日中包含的行。现在我已经像下面的示例中那样手动执行此操作,但我想将其转移到一些功能,我可以在其中指定开始和结束日期并获得相同的逻辑来应用如下。那是
如何创建一个输入为开始日期和结束日期的函数,该函数的结果将是选择仅包含在数据集的工作日中的所有行(我想排除每个 staurday 和 sunday 作为 where 子句条件以下)?
postgresql - 检查 IP 地址的整数值是否在 PostgreSQL 的私有范围内
我正在使用 PostgreSQL 的 MPP 版本,它是从 8.3 版分叉出来的
我有一个大表,其中包含一个名为 ip_address 的列,它是 inet 和另一个名为 hash_ip_address 的列,它是 bigint。hash_ip_address 列中的每个值都是使用 hashnet 函数从 ip_address 列转换的值。我正在尝试使用整数值来确定地址是私有的还是公共的。我遇到的问题是我看不到检查 IP 地址的整数值是否为私有的通用方法,因为有些值是正数,有些是负数,如下例所示:
有没有办法仅使用 hashnet 函数的转换整数值来确定 IP 地址是否是私有的?
编辑:这是来自http://doxygen.postgresql.org/network_8c.html#a0baabf8b98dbbcc39c6c1c814f9d86f8的 hashnet 函数的定义
基准哈希网 (PG_FUNCTION_ARGS)
在文件 network.c 的第 527 行定义。
参考 hash_any()、ip_addrsize()、PG_GETARG_INET_PP 和 VARDATA_ANY。
postgresql - 提高 PostgreSQL 中私有 IP 地址的正则表达式匹配的性能
我正在使用 PostgreSQL 的 MPP 版本,它从 8.3 分叉出来。
我正在尝试使用 where 子句优化选择语句,以仅选择具有私有源 IP 地址和公共目标 IP 地址的行。我有两列 inet 类型,称为 source_ip 和 destination_ip。我觉得以下操作不是最有效的做事方式,因为我正在做一个正则表达式匹配来确定一个 IP 是公共的还是私有的:
如何使上述 where 子句更有效?有没有办法不使用正则表达式并使用内置的 postgresql 函数以更快的方式对 inet 类型进行操作?
postgresql - 如何终止 postgresql 8.3 会话?
我正在尝试终止 postgresql 8.3 中的会话(特定会话或所有会话,无关紧要),但在执行此操作时遇到了麻烦。我知道在较新的版本(8.4 及更高版本)中有一个 pg_terminate_backend 命令可以解决问题,但这在 postgresql 8.3 中不可用。如果我使用 pg_stat_activity,我可以看到所有处于活动状态但无法终止它们的会话。
解决方案不一定是 sql 命令,但我希望它独立于正在使用的操作系统(即没有 DOS/UNIX 命令)。
在 Windows 服务中停止和启动 postgres 服务效果很好,但这是一种特定于操作系统的方法。但是,使用 'pg_ctl restart -D DATA_DIR' 不会停止服务。实际上,在我尝试这样做时使用 pg_ctl 尝试并重新启动服务会导致一些奇怪的行为。如果有一种方法我可以以某种方式使用 pg_ctl 来强制关闭进程,就像我假设的 windows 那样,那么我可能可以使用它。
无论如何,我正在寻找一种方法来终止 postgresql 8.3 中非特定平台的一个或所有会话。任何帮助都会很棒!
postgresql - SQL查询选择公网IP地址
我在 postgresql 8.3 数据库上。我试图找出错误在下面的查询中。我正在尝试设计一个查询以仅选择作为私有地址的 source_ips 和 destination_ips。
出于某种原因,在下面的查询中获取的地址之一是地址 208.117.252.39,它不是私有地址。
下面的查询中的逻辑是否有问题会使其也选择公共 IP 地址?