多维数据集js中的细分

我想在cube.js中实现OR过滤器功能。 link表示我们可以通过在cubejs参数中使用细分选项来做到这一点。

如何使用细分,其目的是什么?我试图从网站上了解他们的5行文档,但未能理解如何使用它。

liaotengfei2008 回答:多维数据集js中的细分

细分是预定义的过滤器。

您可以使用段在SQL中定义复杂的过滤逻辑。 例如,一个特定城市的用户可以被视为一个细分。

cube(`Users`,{
  // ...

  segments: {
    sfUsers: {
      sql: `${CUBE}.location = 'San Francisco'`
    }
  }
});

或使用句段实现跨列OR逻辑:

cube(`Users`,{
  // ...

  segments: {
    sfUsers: {
      sql: `${CUBE}.location = 'San Francisco' or ${CUBE}.state = 'CA'`
    }
  }
});

与其他多维数据集成员定义一样,段可以为generated

const userSegments = {
  sfUsers: ['San Francisco','CA'],nyUsers: ['New York City','NY']
}

cube(`Users`,{
  // ...

  segments: {
    ...(Object.keys(userSegments).map(segment => ({
      [segment]: {
        sql: `${CUBE}.location = '${userSegments[segment][0]}' or ${CUBE}.state = '${userSegments[segment][1]}'`
      }
    })).reduce((a,b) => ({ ...a,...b })))
  }
});

定义细分后,您可以在query object中传递它:

{
  measures: ['Users.count'],segments: ['Users.sfUsers']
}
本文链接:https://www.f2er.com/2995329.html

大家都在问