我是一个处理postgres 9.5 (动态)交叉表查询的新手,这个查询一般运行良好,但是我想出了一个大的、几乎相同的类别名称的特殊问题,我希望有一个简单的解决方案/解释。
需要tablefunc
CREATE EXTENSION IF NOT EXISTS tablefunc;
模式:
CREATE TABLE temp_table (id integer, name text, data text);
INSERT INTO temp_table VALUES (1, 'ThisSentenceIsExactlySixtyTwoCharactersLongPlusNumbersAt
我正在尝试使用postgres对两个不相关的表进行求和。使用MySQL,我会这样做:
SELECT SUM(table1.col1) AS sum_1, SUM(table2.col1) AS sum_2 FROM table1, table2
这应该是一个包含两个列的表,分别名为sum_1和sum_2,但是,postgres没有为这个查询提供任何结果。
有什么想法吗?
在Postgres 9.6环境中,当我尝试执行“合并到”查询时,它会抛出以下错误:
ERROR: syntax error at or near "MERGE"
LINE 1: MERGE INTO Stock USING Buy ON Stock.item_id = Buy.item_id W...
^
它似乎不支持合并查询。然而,当我做谷歌,似乎合并是支持的Postgres从版本9.1。
请告诉我这里出了什么问题。
编辑:下面是我在Postgres中找到合并支持的来源。
我有以下查询:
SELECT name,tid FROM table_name WHERE status=1 AND
CASE
WHEN EXISTS (SELECT 1 FROM table_name WHERE name='name1' AND tid='tid1' AND status=1)
THEN name='name1' AND tid='tid1'
ELSE name='name2' AND tid='tid2'
END;
上面的查询适用于postgres和mysql,但在oracle
我已经启动了postgres容器。通过在docker入口点注入script.sql,我创建了数据库、模式、表,并在其中插入了数据。Docker日志显示所有的表创建和数据插入都成功。 但是如何验证数据插入呢?下面的命令没有帮助 List of relations
Schema | Name | Type | Owner
------------+----------------------+-------+----------
my_db | users | table | postgres
我正在阅读Postgres的查询优化器的统计估计器代码,以了解它是如何工作的。
作为参考,Postgres的查询优化器的统计估计器估计Postgres计划树中操作(例如联接、选择)的输出大小。这允许Postgres在执行查询的不同方式之间进行选择。
Postgres的统计估计器使用有关每个关系列的内容的缓存统计信息来帮助估计输出大小。两个关键保存的数据结构似乎是:
最常用值列表:存储在该列中的每个最常见值的列表以及它们在列中出现的频率。A列中存储的数据的直方图。
例如,给定表:
X Y
1 A
1 B
1 C
2 A
2 D
3 B
Y最常见的值列表将包含{1:0.5, 2:0.333}。
但
我正在使用postgres,我想尝试date_diff,但是我得到了这个错误
警告: pg_query():查询失败:错误:操作符不存在:布尔=整数行1
然后这是我的疑问
select id_mitra
,company_name
from ref_mitra
where reject=0 and DATE_DIFF(now(),date_status) > 3 and active='N'
我的问题出了什么问题?
我尝试用下面的sql选择表(Postgres DB)的所有记录:
SELECT * FROM 'tablename' WHERE 'myTimestampRow' >= now()
总是有一条错误消息,告诉我有一个‘timestamp with time zone:“myTimestampRow”类型的无效输入语法。
上面的查询有什么问题?
我在Postgres有两张桌子。我想从表中获得最新的3条记录数据。
以下是查询:
select two.sid as sid,
two.sidname as sidname,
two.myPercent as mypercent,
two.saccur as saccur,
one.totalSid as totalSid
from table1 one,table2 two
where one.sid = two.sid;
上面的查询显示了所有符合条件one.sid = two.sid;I的记录,只想从table2获取最近3个记录的
我在尝试从Postgres视图中选择按名称过滤的行时遇到了一个问题。
查询的结果应该是company_portfolio中名为“any company 2”的公司。但是,它没有返回公司,而是什么也不返回。我指的是一个空的公司数组,而不是一个包含名称为'any company 2‘的公司的数组。
我已经创建了一个Postgres视图,如下所示:
CREATE OR REPLACE view company_portfolio as
SELECT company.id,
company.name,
...
FROM "Comp
我使用postgres 11并尝试从表cmdb_mgmt中获取所有列,将两个表与列hostname (fkey)进行匹配,在表config_data.interface列中,last_seen是null。这是我拥有的查询,它运行但不返回结果:
select
*
from
cmdb_mgmt, config_data.interface
where
config_data.interface.last_seen in (
select config_data.interface.last_seen from config_data.interface wh
下面有一个简单的联接查询:
select jobs.location_id
from companies,
jobs
where jobs.company_id = companies.id
and companies.name = 'name';
它似乎没有得到公司的工作地点有这个名字,但不知怎的,所有的location_id在就业表。
同时,这两个单独的查询完成了以下工作:
select id from companies where name = 'name';
select jobs.location_id from jobs wher
我试图用Postgres编写我的第一个交叉表查询。有些结果没有条目,因此返回的行具有空项。如何为这些条目设置默认值?
下面是返回的一行:
-[ RECORD 1 ]-------------------+-----
username | some name
some_column_name_1 | 2
some_column_name_2 |
下面是我的交叉表查询:
SELECT *
FROM crosstab( 'select username, stage, count from
我正在将查询从Oracle更改为PostgreSQL,在这个查询中,我得到了以下错误:
ERROR: syntax error at or near "SET"
查询是:
{call UPDATE alarm_instance SET last_update_time=default, wait_expire_time=null, core_number=nextval(SEQ_ALRM_NUMBR)
where wait_time <= current_date RETURNING alarm_instance_id bulk collect INTO ?}
我使用
我有以下问题:
select user_id, trajectory_id, count(trajectory_id) from point group by user_id, trajectory_id
它返回以下结果:
我希望从point表中删除所有记录,其中生成表中的count < 5。
现在我有下面的查询,但它没有编译。它有什么问题,我如何修复它?
delete
from point
where count(trajectory_id) < 5
GROUP BY user_id, trajectory_id
我在用Postgres。
在安装PostgreSQL时,我一直收到这样的消息:
“运行安装后步骤有问题。安装可能无法正确完成数据库群集初始化失败。”
这似乎妨碍了我正确地使用PGadmin。
在安装日志中,我发现了下面的部分,它似乎表明出了什么地方出了问题。
我还没有找到解决这个问题的办法。
Executing batch file 'rad7C33E.bat'...
The program "postgres" was found by "C:/Program Files/PostgreSQL/11/bin/initdb.exe"
but was not the