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

在DolphinDB中对数组向量列去重并保留原始顺序

解决方案

要在DolphinDB中实现数组向量列的按行去重且保留元素原始顺序,可以通过自定义函数实现,核心逻辑是仅保留数组中首次出现的元素。

1. 定义保留顺序的去重函数

def keepOrderDistinct(arr) {
    seen = set()
    result = []
    for (x in arr) {
        if (!x in seen) {
            seen.add(x)
            result.append(x)
        }
    }
    return result
}

2. 应用函数处理目标表

直接在查询语句中调用自定义函数,无需额外group by(原始表已按sym每行对应一个独立数组):

// 构造原始表
t = table(`a`b as sym, array(INT[]).append!([1 2 1, 2 3 2]) as val)
// 执行去重查询
select sym, keepOrderDistinct(val) as distinct_val from t

执行结果

sym distinct_val
--- ------------
a   [1,2]       
b   [2,3] 

逻辑说明

自定义函数keepOrderDistinct通过维护一个集合seen记录已出现的元素,遍历数组时仅将未出现过的元素加入结果列表,确保完全保留元素的原始出现顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:42:37