小编ice*_*fex的帖子

在 PL/pgSQL 中是否有一种简单的方法来检查查询是否没有返回结果?

我目前正在尝试使用 PL/pgSQL,想知道是否有更优雅的方法来做这样的事情:

select c.data into data from doc c where c.doc_id = id and c.group_cur > group_cur order by c.id desc limit 1;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        select c.data into data from doc c where c.doc_id = id and c.global_cur > global_cur order by c.id desc limit 1;
        EXCEPTION
            WHEN NO_DATA_FOUND THEN
                RETURN NULL;
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

21
推荐指数
2
解决办法
6万
查看次数

每小时删除重复条目

我最近问了关于 MySQL 的同样问题,它已经迁移到 Postgres。 老问题

把它们加起来:

我有一个带有 id(类型 UUID)、时间戳和一些文本(row3)的表。如何为 row3 的每个不同值每小时仅保留一个条目?

我试过的是这样的:

INSERT INTO log_table
SELECT * FROM table1
WHERE id IN (
    SELECT DISTINCT ON(id) id
    FROM table1
    GROUP BY row3, EXTRACT(HOUR FROM "time"), id
);
TRUNCATE table1;
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这会插入 table1 中的每一行。

postgresql

4
推荐指数
1
解决办法
1190
查看次数

标签 统计

postgresql ×2

plpgsql ×1