You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于entity_id和time列优化唯一记录查询的高效方案求助

高效检索基于entity_id和time的唯一记录问题

我有一个存储在test_table表中的大型数据集,包含entity_id、time、group_id列,需要高效检索基于entity_id和time的唯一记录。

测试表结构与数据

表结构与插入语句

CREATE TABLE test_table (
    entity_id int,
    time BIGINT,
    group_id INT
);

INSERT INTO test_table (entity_id, time, group_id) VALUES 
(1, 1709049203345, 10086), 
(2, 1708605859234, 435146), 
(2, 1708605859234, 435146), 
(4, 1707815681971, 10086),
(5, 1707291871198, 10086),
(5, 1707291871198, 10086);

数据表格

entity_idtimegroup_id
1170904920334510086
21708605859234435146
21708605859234435146
4170781568197110086
5170729187119810086
5170729187119810086

已尝试的低效方法

方法一:带ROW_NUMBER()的CTE

WITH cte AS (
    SELECT 
        entity_id, 
        time, 
        group_id, 
        ROW_NUMBER() OVER (PARTITION BY entity_id, time ORDER BY entity_id) AS row_num
    FROM 
        test_table
)
SELECT 
    entity_id, 
    time, 
    group_id
FROM 
    cte
WHERE 
    row_num = 1;

方法二:DISTINCT ON子句

SELECT DISTINCT ON (time, entity_id) *
FROM test_table
ORDER BY time, entity_id;

以上两种方法处理速度均过慢,我无该数据库的写入权限,仅能执行SELECT语句,请问是否有更高效的实现方法?


内容的提问来源于stack exchange,提问作者executable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:56:21