powerbi DirectQuery不同计数按问题分组

时间:2019-05-02 14:24:34

标签: powerbi dax

我有一个表格格式 记录日期(包括秒),用户标识,数据库

我需要显示每小时每5分钟分组的最大用户数(不确定是否可以解释-请参见下面的示例)

我仅使用DirectQuery存储,也无意将其更改为导入。

我尝试了各种方法,但是如果不更改存储模式就无法管理。任何帮助表示赞赏。

我的餐桌样品是

21/01/2019 12:35:00, jane, UK
21/01/2019 12:35:00, joe, UK
21/01/2019 12:35:00, joe, NL
21/01/2019 12:40:00, bob, NL
21/01/2019 12:40:00, jane, NL
21/01/2019 12:40:00, joe, NL
21/01/2019 12:40:00, jakob, NL

预期结果

21/01/2019 12, UK, 2
21/01/2019 12, NL, 4

1 个答案:

答案 0 :(得分:0)

首先在数据表中添加一个小时列。

Hour = HOUR([DateTime])

然后创建一个临时汇总表(可以从报告视图中隐藏该表)。

SummTemp = 
SUMMARIZE(
    Data;
    [Datetime];
    [Nat];
    [Hour]; // this is the calculated column with only hour.
    "Date"; DATE(YEAR([DateTime]); MONTH([DateTime]); DAY([DateTime]));
    "Count"; COUNTA('Data'[Nat])
)

然后创建第二个汇总表:

SummaryTable = 
SELECTCOLUMNS(
    SUMMARIZE(
        SummTemp;
        [Date];
        [Hour];
        [Nat];
        "MaxCount"; MAX('SummTemp'[Count]);
        "NewName"; [Date]&" "&[Hour]
    // OR "NewName"; ( [Date]&" "&TIME([Hour]; 0; 0))*
    );
    "DateHour"; [NewName];
    "Nationality"; [Nat];
    "MaxCNX"; [MaxCount]
)

最终结果将如下所示:

enter image description here

*如果使用此行,则将获得一列文本格式,但带有[dd / mm / yyyy hh:00:00]的列。您可以通过选择该列并将其转换为日期格式,并通过“建模”->“数据类型”将其从文本更改为日期时间。 NMot确定是否可以从中删除分钟和秒钟,但可以删除秒,以便DateHour列的格式为:[dd / mm / yyyy hh:00]