即使其中一个字段具有空值,我也需要从表中检索数据。下面是一个例子:
Select name, SUM(credit) as credit
From expenses
Where name like 'vendor0%'
and date like '2013%'
Group by name
Order by name asc
Run Code Online (Sandbox Code Playgroud)
此示例检索name并SUM(credit)只有当credit具有价值。name即使credit根本没有任何价值,我也需要从中检索所有内容。
这可能吗?
我想申请CYCLE一个BIGSERIAL在phpPgAdmin的。
我已经看到如何通过查询来实现,但我更愿意通过 phpPgAdmin 来实现。
这可以用 phpPgAdmin 完成吗?如果是这样,如何?如果没有,如何CYCLE应用于预先存在的BIGSERIAL列?
我有从用户到地址表的一对一关系。一位用户可以拥有一个搜索地址和一个经过验证的地址。
我在地址表上有两个索引:
我正在尝试仅为某些用户获取地址,而那些状态不是manual_verification.
这是我的查询:
SELECT users.id
FROM "users" INNER JOIN addresses
ON addresses.user_id = users.id
and addresses.type = 'VerifiedAddress'
WHERE ("users".deleted_at IS NULL)
AND (users.id in (11144,10569,21519,783,15671,21726,17787,11665,
19579,12226,1324,9413,5461,20981,12906)
and addresses.state != 'manual_verification')
Run Code Online (Sandbox Code Playgroud)
解释上面的查询:http : //explain.depesz.com/s/rTj
需要 37 毫秒。有时更多取决于用户数量。
我认为这是一个很好的查询,但是我们的团队需要对此进行调查,我正在寻找一些优化技巧。我的意思是我做了一个字段选择,user_id(地址)和状态(地址)上有一个索引。
还有什么我可以做/尝试的吗?
更新
我发现这个查询的工作速度要快得多:
SELECT "addresses"."user_id"
FROM "addresses"
WHERE "addresses"."type" IN ('VerifiedAddress')
AND (user_id in (9681,23824,23760,20098,962,14730,12294,9552,534,
553,5837,6768,6583,956,24179) and state != 'manual_verification')
Run Code Online (Sandbox Code Playgroud)
解释这个查询:http : //explain.depesz.com/s/nHrr
有谁知道设置 postgresql 9.3 从属设备来从 postgresql 9.2 主设备进行流式复制是否有问题?
这是我不明白的地方,有人可以解释一下吗?
我创建一个表
CREATE TABLE cali (id SERIAL PRIMARY KEY,
ALK_from char,
ALK_to char,
AND_from char,
AND_to char);
Run Code Online (Sandbox Code Playgroud)
然后我只是尝试像这样从 csv 文件中插入一些数据
\COPY cali FROM '/home/.../data/output/id_cali.csv' (FORMAT CSV);
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
ERROR: value "4372840000" is out of range for type integer
CONTEXT: COPY cali, line 1, column id: "4372840000"
Run Code Online (Sandbox Code Playgroud)
我知道 4372840000 会导致整数溢出。这就是为什么我首先尝试将值作为字符插入。
但我的理解是,这id SERIAL PRIMARY KEY是某种自动增量,为什么值 4372840000 用于列id?
该文件看起来像这样
4372840012,4372840013,13,14,
4372840014,4372840014,15,15,
Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题,我真的不明白。简单地说,我有一个包含 4 个表连接的连接,我相信它们都有适当的索引,但是查询需要大量的时间,除非我删除它的一部分。
更大的图片是,有 3 种类型的对象 A、B 和 C,每个对象都有自己的表,并且相关联,A 是孩子,B 是父母,C 是祖父母。除此之外,还有一个关系表 R,允许多个 B 与多个 C 相关,并且由于关系 R 属于特定类型,因此还有一个附加表 T。
现在在有问题的查询中,我试图获取类型 A 的记录列表,谁的父母与祖父母有特定类型的关系,祖父母的名字 ILIKE 另一个字符串。
表A有~700k条记录,表B有~60k条记录,表C有~8k条记录,表R有~90k条记录,表T有~100条记录。
由于 A 包含链接到字段 B.id 的字段 parent_id,因此 B 不需要直接包含在查询中。
所以查询是这样的:
SELECT DISTINCT A.id, A.name
FROM A
JOIN R ON A.parent_id=R.lhs
JOIN T ON R.type=T.id AND T.alias='type-name'
JOIN C ON R.rhs=C.id
WHERE A.flag=1 AND A.strvalue='value' AND C.name ILIKE '%substr%'
ORDER BY A.name ASC
LIMIT 25;
Run Code Online (Sandbox Code Playgroud)
像这样运行查询需要超过 10 秒(我从来没有让它运行完成,因为它需要太长时间)。
在我的实际设置中,我在关键 ID 字段中有类型,所以查询实际上挂在类型中的一个字段上,但索引也会这样做。
奇怪的是我已经尝试从查询中取出位,因此尝试确定花费太长时间的位,并删除 T 部分或 ILIKE 部分似乎使其在正常时间范围内执行。 …
我有以下选择,它是从带有列的表中选择的:
id、project_id、keyword_id、位置、数据示例:
i, p_id, k_id, p
1, 1, 1, 4
2, 1, 1, 5
3, 1, 1, 6
5, 1, 2, 7
6, 1, 2, 8
7, 1, 3, 5
8, 1, 3, 7
Run Code Online (Sandbox Code Playgroud)
询问
SELECT
pr.project_id,
COUNT(DISTINCT pr.keyword_id) as total_keywords,
COUNT(CASE WHEN position BETWEEN 4 AND 10 THEN position ELSE NULL END ) AS pos4,
date(pr.created_at) AS created_at
FROM
project_reports pr
GROUP BY pr.project_id, date(created_at)
Run Code Online (Sandbox Code Playgroud)
我只想在 pos 4-10 中获取不同的 keyword_id 的数量。但是使用我的SELECT我得到了所有这些。
预期数据示例:
p_id, total_keywords, pos4
1, 3, …Run Code Online (Sandbox Code Playgroud) 我不小心/var/lib/pgsql/9.1/data从运行 postgresql 服务器中删除了数据目录。
我想当服务器重新启动时我会丢失我的数据。
我想知道 postgresql 是否有任何工具可以从正在运行的服务器实例中恢复数据,或者我必须使用系统数据恢复工具?
我有下表:
id | name | action | count
------------------------------
1 | Value1 | 0 | 27
1 | Value1 | 1 | 49
2 | Value2 | 0 | 7
2 | Value2 | 1 | 129
3 | Value3 | 0 | 9
3 | Value3 | 1 | 7
Run Code Online (Sandbox Code Playgroud)
我需要使“动作”列出现两次,其中包含每一行的计数值,如下所示:
id | name | action1 | action2
---------------------------------
1 | Value1 | 27 | 49
2 | Value2 | 7 | 129
3 | Value3 | 9 | …Run Code Online (Sandbox Code Playgroud) postgresql ×10
aggregate ×2
performance ×2
bulkcopy ×1
index ×1
null ×1
optimization ×1
php ×1
replication ×1
select ×1