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

Power BI中基于RESPONDENT_SRGT分组计算平均值及达标计数需求

Power BI中用DAX实现对应SQL的统计需求

需求说明

基于通过ANSWER_SRGT关联的FACT_TABLE和DIM_ANSWER_TABLE,计算每个RESPONDENT_SRGT对应的VALUE平均值,再统计平均值≥4的受访者(RESPONDENT_SRGT)数量,对应你提供的SQL逻辑。

DAX实现方案

先确保在Power BI数据模型中,已建立FACT_TABLE[ANSWER_SRGT]与DIM_ANSWER_TABLE[ANSWER_SRGT]的关联关系,以下两种写法均可实现需求:

写法1:对应SQL子查询结构(直观易读)

统计平均值≥4的受访者数量 = 
VAR 受访者平均值分组 = 
    SUMMARIZE(
        FACT_TABLE,
        FACT_TABLE[RESPONDENT_SRGT],
        "平均得分", AVERAGEX(RELATEDTABLE(DIM_ANSWER_TABLE), VALUE(DIM_ANSWER_TABLE[VALUE]))
    )
RETURN
    COUNTROWS(FILTER(受访者平均值分组, [平均得分] >= 4))
  • 逻辑解释:
    1. 用SUMMARIZE按RESPONDENT_SRGT分组,通过RELATEDTABLE关联到对应维度表的行,再用AVERAGEX计算每组的VALUE平均值(VALUE()函数对应SQL的Cast(..., as Float),处理文本类型的数值)
    2. 过滤出平均值≥4的分组,统计行数即为符合条件的受访者数量

写法2:简洁版写法

统计平均值≥4的受访者数量 = 
COUNTROWS(
    FILTER(
        VALUES(FACT_TABLE[RESPONDENT_SRGT]),
        CALCULATE(AVERAGE(VALUE(DIM_ANSWER_TABLE[VALUE]))) >= 4
    )
)
  • 逻辑解释:
    1. VALUES(FACT_TABLE[RESPONDENT_SRGT])获取所有不重复的受访者ID
    2. 对每个受访者ID,用CALCULATE计算其对应的VALUE平均值
    3. 过滤出平均值≥4的受访者,统计数量

注意事项

  • 若DIM_ANSWER_TABLE[VALUE]是文本格式,必须用VALUE()转换为数值类型,否则无法计算平均值
  • 确保模型中的关联关系正确,否则RELATEDTABLE或CALCULATE无法正确关联数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:06:32