我正在寻找一种方法来评估并以图形方式显示两个团队的工作方式。
一方面,我有一个数据集,其中项目作为行,每个团队A和B的开始和结束日期。
Sample data
另一方面,我有一个以所有天为增量的数据集。
我想要的是每个团队每天活跃项目的数量。在SQL中,我会尝试使用子查询...
谢谢你的帮助。
发布于 2016-10-07 12:14:22
我将针对每个数据集构建一个查询(您可能已经有了这些数据集),然后我将为每个数据集添加一个自定义列,例如:
Dummy Merge Key
= 1然后,我将向"Projects“查询添加一个合并步骤,以将其与"days”查询结合在一起,连接到虚拟的合并键。然后,我将展开生成的NewColumn以获得所需的"days“查询列(例如,Date)。
在这一点上,您有一个交叉联接(在SQL术语中)。接下来,我将添加一个自定义/条件列,例如
Include Date
= [Start_TEAM_1] >= [Date] and [End_TEAM_1] <= [Date]然后,您可以根据生成的column = true进行过滤,以便仅将日期值在起始-结束范围内的行。
显然,你的“项目”数据结构(有重复的开始和结束列)对于这个目的来说是笨拙的--我可能会先取消它的透视,以避免重复的代码和混乱的标准。
发布于 2016-11-21 23:31:55
我想知道这是否仍然是必需的(不管怎样,也许其他人也会发现它很有用)。:)
我可以提供这个解决方案:
let
//Create example source tables
Projects = Table.FromColumns(
{
{"P001","P002"},
{#date(2016,10,06), #date(2016,10,11)},
{#date(2016,10,11), #date(2016,10,16)},
{#date(2016,10,16), #date(2016,10,21)},
{#date(2016,10,24), #date(2016,10,29)}
},
{"Project_No", "Start_Team_1", "End_Team_1", "Start_Team_2", "End_Team_2"}),
Dates = Table.TransformColumnTypes(Table.FromColumns({List.Transform({1..31}, each #date(2016,10,_))}, {"Date"}),{{"Date", type date}}),
//Add dummy columns, join, remove dummy columns
Join = Table.RemoveColumns(
Table.Join(
Table.AddColumn(Dates, "tmp1", each 1), {"tmp1"},
Table.AddColumn(Projects, "tmp2", each 1), {"tmp2"},
JoinKind.FullOuter
)
, {"tmp1", "tmp2"}),
//Group dates and count required rows
GetResult = Table.Group(Join, {"Date"},
{
{"Team1_Prj_Count", each Table.RowCount(Table.SelectRows(_, each [Start_Team_1] <= [Date] and [End_Team_1] >= [Date])), type number},
{"Team2_Prj_Count", each Table.RowCount(Table.SelectRows(_, each [Start_Team_2] <= [Date] and [End_Team_2] >= [Date])), type number}
})
in
GetResult似乎可以解决你的问题。
https://stackoverflow.com/questions/39896858
复制相似问题