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

如何在Looker中计算排除特定类型Issue Items的平均商品评分

Looker自定义度量:排除特定问题商品的平均评分计算

方案一:子查询快速实现

无需额外定义维度,直接通过子查询判断并排除目标商品:

measure: avg_rating_excluding_quality_price_issues {
  type: average
  sql: 
    CASE
      WHEN EXISTS (
        SELECT 1 
        FROM issue 
        WHERE issue.order_issue_items_id = ${customer_assignment_items.order_item_id}
          AND issue.reason IN ('QUALITY', 'PRICE')
      ) THEN NULL
      ELSE ${customer_assignment_items.rating}
    END ;;
  description: "所有商品的平均评分,排除存在QUALITY或PRICE类型问题的商品"
}

逻辑说明:

  • EXISTS子查询检查当前订单商品是否关联了QUALITY或PRICE类型的问题记录
  • 若存在这类问题,返回NULL——Looker的average类型度量会自动忽略NULL值,相当于排除该商品
  • 无问题(或无关联Issue记录)的商品直接返回评分,纳入平均计算

方案二:左连接+过滤器(符合Looker范式)

先定义关联Issue表的维度,再通过过滤器排除目标问题类型:

1. 定义关联Issue的维度

dimension: issue_reason {
  sql: ${issue.reason} ;;
  type: string
  join: issue {
    sql_on: ${customer_assignment_items.order_item_id} = ${issue.order_issue_items_id} ;;
    type: left_outer
  }
}

2. 创建自定义度量

measure: avg_rating_excluding_quality_price_issues {
  type: average
  sql: ${customer_assignment_items.rating} ;;
  filters: {
    field: issue_reason
    operator: not in
    values: ["QUALITY", "PRICE"]
  }
  description: "所有商品的平均评分,排除存在QUALITY或PRICE类型问题的商品"
}

逻辑说明:

  • 左连接issue表,保留所有订单商品(包括无Issue的)
  • 过滤器排除issue_reason为QUALITY或PRICE的记录,剩余记录的评分参与平均计算

注意事项

  • 替换${customer_assignment_items.rating}为你实际使用的评分字段/度量名称
  • 确保issue表和customer_assignment_items表在Looker模型中有正确关联,或子查询中的表名与数据库实际表名一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:54:28