我有一个表格格式 记录日期(包括秒),用户标识,数据库
我需要显示每小时每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
答案 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]
)
最终结果将如下所示:
*如果使用此行,则将获得一列文本格式,但带有[dd / mm / yyyy hh:00:00]的列。您可以通过选择该列并将其转换为日期格式,并通过“建模”->“数据类型”将其从文本更改为日期时间。 NMot确定是否可以从中删除分钟和秒钟,但可以删除秒,以便DateHour列的格式为:[dd / mm / yyyy hh:00]