首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerQuery -子查询

PowerQuery -子查询
EN

Stack Overflow用户
提问于 2016-10-06 21:06:50
回答 2查看 1.5K关注 0票数 2

我正在寻找一种方法来评估并以图形方式显示两个团队的工作方式。

一方面,我有一个数据集,其中项目作为行,每个团队A和B的开始和结束日期。

Sample data

另一方面,我有一个以所有天为增量的数据集。

我想要的是每个团队每天活跃项目的数量。在SQL中,我会尝试使用子查询...

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-10-07 12:14:22

我将针对每个数据集构建一个查询(您可能已经有了这些数据集),然后我将为每个数据集添加一个自定义列,例如:

代码语言:javascript
复制
Dummy Merge Key 
= 1

然后,我将向"Projects“查询添加一个合并步骤,以将其与"days”查询结合在一起,连接到虚拟的合并键。然后,我将展开生成的NewColumn以获得所需的"days“查询列(例如,Date)。

在这一点上,您有一个交叉联接(在SQL术语中)。接下来,我将添加一个自定义/条件列,例如

代码语言:javascript
复制
Include Date
= [Start_TEAM_1] >= [Date] and [End_TEAM_1] <= [Date]

然后,您可以根据生成的column = true进行过滤,以便仅将日期值在起始-结束范围内的行。

显然,你的“项目”数据结构(有重复的开始和结束列)对于这个目的来说是笨拙的--我可能会先取消它的透视,以避免重复的代码和混乱的标准。

票数 1
EN

Stack Overflow用户

发布于 2016-11-21 23:31:55

我想知道这是否仍然是必需的(不管怎样,也许其他人也会发现它很有用)。:)

我可以提供这个解决方案:

代码语言:javascript
复制
    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

似乎可以解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39896858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档