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

如何在Qlik Sense中合并日期重叠的客户问题记录

在Qlik Sense中合并重叠日期的记录

作为Qlik Sense新手,发现它不支持PostgreSQL中的部分常规函数,现在需要实现将多个日期重叠的记录合并(压缩)为单条的功能。

原始数据

id_clientid_questiondate_opendate_close
YZIYR00R1453453411.01.202211.01.2022
YZIYR00R1478654311.01.202211.01.2022
YZIYR00R8763495711.01.202211.01.2022
YZIYR00R1239875011.01.202212.01.2022
YZIYR00R3648502313.01.202213.01.2022
YZIYR00R0974836113.01.202214.01.2022
YZIYR00R5641945313.01.202213.01.2022
YZIYR00R6432412313.01.202215.01.2022

逻辑规则

同一客户的问题日期若存在重叠或连续,需合并为一条记录:取该组最早的date_open、最晚的date_close,保留组内第一条记录的id_question。

曾尝试用窗口函数判断下一条记录的date_open <= 当前记录的date_close识别重叠,但未实现完整压缩效果。

期望输出

id_clientid_questiondate_opendate_close
YZIYR00R1453453411.01.202212.01.2022
YZIYR00R3648502313.01.202215.01.2022

解决方案(Qlik Sense加载脚本实现)

通过加载脚本的累积计算完成分组,具体步骤如下:

  1. 加载并转换日期格式
    将字符串日期转为Qlik可识别的日期类型,确保计算准确性:

    RawData:
    Load
        id_client,
        id_question,
        Date(Date#(date_open, 'DD.MM.YYYY')) as date_open,
        Date(Date#(date_close, 'DD.MM.YYYY')) as date_close
    From [你的数据源路径]; // 替换为实际数据源(Excel、数据库连接等)
    
  2. 按客户和日期排序并创建分组
    对每个客户的记录按date_open升序排列,通过累积判断生成分组标识:

    GroupedData:
    Load
        *,
        // 当前记录日期与上一组重叠则沿用分组,否则新建分组
        If(Peek('max_close') >= date_open, Peek('group_id'), Peek('group_id') + 1) as group_id,
        // 维护当前分组的最晚结束日期
        If(Peek('max_close') >= date_open, Max(Peek('max_close'), date_close), date_close) as max_close
    Resident RawData
    Order By id_client, date_open;
    
  3. 聚合分组得到最终结果
    按客户和分组聚合,提取所需字段:

    FinalData:
    Load
        id_client,
        FirstSortedValue(id_question, date_open) as id_question,
        Min(date_open) as date_open,
        Max(date_close) as date_close
    Resident GroupedData
    Group By id_client, group_id;
    
  4. 清理中间表(可选)
    删除不需要的中间表节省内存:

    Drop Tables RawData, GroupedData;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:01:17