如何找到一个范围内包含的天数?
例如,使用这些时间戳范围,获取这些(整数)天数:
tstzrange('2013-10-01 07:00', '2013-10-01 07:15') | 1 (day)
tstzrange('2013-10-01 07:00', '2013-10-01 23:45') | 1 (day)
tstzrange('2013-10-01 02:00', '2013-10-02 23:45') | 2 (days)
tstzrange('2013-10-01 07:00', '2013-10-03 01:00') | 2 (days)
tstzrange('2013-10-01 01:00', '2013-10-03 23:00') | 3 (days)
tstzrange('2013-10-01 23:00', '2013-10-04 01:00') | 4 (days)
Run Code Online (Sandbox Code Playgroud)
在我的挖掘中,我没有找到一个内置的函数。
是否有必要拉出lower()和upper()时间戳元素,然后获取它们之间的日期间隔?
我正在开发一个带有两个参数的用户定义函数:
create or replace function gesio(
events_table_in regclass,
events_table_out regclass)
returns void as $$ ... $$
Run Code Online (Sandbox Code Playgroud)
events_table_in并events_table_out具有完全相同的架构。
简单解释一下,我遍历 的记录events_table_in,操作记录并希望以events_table_out以下方式追加(插入)操作的记录:
OPEN recCurs FOR execute
format('SELECT * FROM %s order by session_id, event_time', event_table_in);
LOOP
FETCH recCurs into rec;
if not found then
exit;
end if;
-- 1. do something with rec
-- 2. insert the rec into events_table_out
end loop;
Run Code Online (Sandbox Code Playgroud)
我怎样才能保存rec到events_table_out?
我使用 Postgresql 9.2。我将表存储在 ramdisk 上,但现在这些关系的索引位于常规磁盘上。我也想将它们移到 ram 中,但据我所知,postgresql 会在可能的情况下将索引加载到内存中。我对吗?有什么方法可以告诉 postgres 不要将索引加载到内存中。
假设我有一个words包含非常多记录的表。
列是id和name。
在words我的表格中,例如:
'systematic', '????','gear','synthesis','mysterious', etc.
Run Code Online (Sandbox Code Playgroud)
注意:我们也有 utf8 字样。
如何有效地查询,看看哪些词包含字母's','m'和'e'(所有的他们)?
输出将是:
systematic,mysterious
Run Code Online (Sandbox Code Playgroud)
我不知道如何做这样的事情。它应该是高效的,否则我们的服务器会受到影响。
我有两张桌子,table1和table2。让这两个表包含日期、ID 和延迟列。
我有一个简单的查询,它对两个表执行连接并返回一组行:
Select table1.date,(table2.latency - table1.latency) as ans from table1, table2
where table1.id = table2.id order by ans;
Run Code Online (Sandbox Code Playgroud)
我需要从返回的行集中找到第 n 个百分位行,假设我需要从数据中找到 90%、99% 和 99.9% 的百分位行。
我需要以这样的形式显示数据:
date | percentile | ans
01-12-1995 | 90 | 0.001563
02-12-1999 | 99 | 0.0015
05-12-2000 | 99.9 | 0.012
Run Code Online (Sandbox Code Playgroud)
这是我第一次接触 PostgreSQL。我很困惑我应该如何进行。
我正在看PERCENT_RANK()功能。请指导我正确的方向。
这是我通常用来将 csv 数据导入我的 postgres 数据库的方法。
\COPY master_list FROM '/root/raw/file.txt' DELIMITER ',' CSV;
Run Code Online (Sandbox Code Playgroud)
通常它是一个空白表,但在这种情况下,我需要将数据附加到一个包含现有数据的表中。
相同的命令是否足够,或者我应该进行更改,因为它是一个附加?
当我做一个:DROP DATABASEmydb; 随后:CREATE DATABASE mydb WITH OWNER user;新mydb数据库是使用我刚刚删除的数据库中的所有表和数据创建的。我缺少什么?
基本上我想将查询结果分配给自定义类型属性。但是我注意到直接从 PostgreSQL 控制台查询大约需要 0.071 毫秒,并且在几次调用后函数内部为 0.400 毫秒和 0.170 毫秒。explain analyze甚至显示了第一种情况下索引的使用情况,但没有显示第二种情况。
这就是我正在做的。
CREATE OR REPLACE FUNCTION fun_isliked(
par_client client.id%type,
par_feed feed.id%type
)
RETURNS boolean
AS
$$
BEGIN
RETURN (
EXISTS(
SELECT
1
FROM
feedlike fl
WHERE
fl.client = par_client
AND fl.feed = par_feed
AND fl.state = 1
)
);
END;
$$ LANGUAGE plpgsql STABLE;
Run Code Online (Sandbox Code Playgroud)
以下是上述explain analyze两种情况的输出:
postgres=# explain analyze select exists (select 1 from feedlike where client = 13 and feed = 68 and state = 1); …Run Code Online (Sandbox Code Playgroud) 我尝试为我的数据创建报告,但在大表上真的很慢。
表结构为:
CREATE TABLE posts
(
id serial NOT NULL,
project_id integer,
moderation character varying(255),
keyword_id integer,
author_id integer,
created_at timestamp without time zone,
updated_at timestamp without time zone,
server_id character varying(255),
social_creation_time integer,
social_id character varying(255),
network character varying(255),
mood character varying(255) DEFAULT NULL::character varying,
url text,
source_id integer,
location character varying(255),
subject_id integer,
conversation_id integer,
CONSTRAINT posts_pkey PRIMARY KEY (id)
);
CREATE INDEX index_posts_on_author_id ON posts (author_id);
CREATE INDEX index_posts_on_keyword_id ON posts (keyword_id);
CREATE INDEX index_posts_on_project_id_and_network_and_social_id
ON posts …Run Code Online (Sandbox Code Playgroud) 假设在 Postgres 数据库中,您有一个名为 的表party,它可以有少于 5 个明确定义的,party_types例如“人”或“组织”。
您会将存储party_type在party表中(例如party_type = 'Person')还是对其进行标准化(例如party.party_type = 1和party_type(id, name) = (1, 'Person'))?
为什么?
postgresql normalization database-design dimensional-modeling