根据select结果给dim打标签

0
 我想依据measure结果给dim打标签,比如在线总时长大于10000的地区,在地区dim表里标记为优秀地区。现在我能够select出地区的在线时长,但如何把这个结果更新到dim表里呢? 
已邀请:
1

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-09-02 回答

1. 提前创建好这种维度表,如在线时长/消费能力/年龄范围,等等都是通过measurement计算范围得到的维度
2. ETL阶段处理,在FACT Table中加如上说的各种dimension key,哪怕FACT变成蜈蚣也尽可能别在Query里面动态计算,除非你的需求非得是动态生成不可
1

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-06-04 回答

你可以定义一个计算成员,在你需要用的时候直接像维度一样拖拽使用
具体如下:
WITH MEMBER [Measures].[PromoDiscountRange] AS
    CASE
        WHEN [Promotion].[Discount Percent].MemberValue < 0.10
        THEN "最低"
        WHEN [Promotion].[Discount Percent].MemberValue < 0.25
        THEN "中等"
        ELSE "最高"
    END

SELECT
NON EMPTY
{
    [Measures].[PromoDiscountRange],
    [Measures].[Sales Amount]
} ON 0,
NON EMPTY
{
    [Promotion].[Discount Percent].[Discount Percent]
} ON 1
FROM [Adventure Works]
1.png


 
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-06-04 回答

你这个 "在线总时长大于10000" 是细节数据,还是聚合后的数据?

要回复问题请先登录注册