QlikSense中创建设备计数度量及修正活跃设备统计咨询
QlikSense 设备信号数据集度量修正问题
需求说明
处理设备每日信号数据集,需创建两个度量并构建表格:
- 维度:
created_on(信号发送日期) - 度量1(每日不同设备数):统计指定日期发送数据的不同设备(
serial_number)数量 - 度量2(所有活跃设备数):统计首次发送信号日期(
first_signal)早于或等于指定日期的不同设备数量
数据集示例
| serial_number | created_on | first_signal |
|---|---|---|
| EQM1 | 2024-03-01 | 2024-03-01 |
| EQM1 | 2024-03-02 | 2024-03-01 |
| EQM1 | 2024-03-05 | 2024-03-01 |
| EQM1 | 2024-03-07 | 2024-03-01 |
| EQM2 | 2024-03-05 | 2024-03-05 |
| EQM2 | 2024-03-06 | 2024-03-05 |
预期结果:
- 每日不同设备数:仅2024-03-05为2,其余日期为1
- 所有活跃设备数:2024-03-05前为1,之后为2
现有尝试
- 度量1表达式可正常运行:
Count(DISTINCT serial_number)
- 度量2尝试用集合分析,但仅总计行正确,单个日期行结果错误:
Count({<first_signal={"<= $(=Date(created_on, 'YYYY-MM-DD'))"}>} DISTINCT serial_number)
修正方案
原表达式错误原因:表格按created_on分组时,当前筛选范围仅包含当日记录,无法访问所有设备的first_signal数据。需移除created_on的维度筛选,同时针对当前行的日期筛选符合条件的设备:
修正后的度量2表达式:
Count({<created_on=, serial_number={"=first_signal <= $(=Max(created_on))"}>} DISTINCT serial_number)
表达式说明
<created_on=>:移除当前对created_on的维度筛选,确保能获取所有设备的first_signal信息serial_number={"=first_signal <= $(=Max(created_on))"}:筛选出首次信号日期小于等于当前维度行日期的设备Count(DISTINCT serial_number):统计符合条件的不同设备数量
内容的提问来源于stack exchange,提问作者tessuw
相关产品推荐
相关产品推荐

