当前位置: 首页 > 知识库问答 >
问题:

透视基于表中的两列[重复]

梁泰
2023-03-14

我有一张这样的桌子

PCode      Milestone      DeliveryDate       Status
------------------------------------------------------
P1234        Start             14/5/2019     Complete
P1234        End               17/6/2019     Complete
P2345        Start              8/6/2019      Progress
P2345        End                19/6/2019     Progress
P7335        Start              18/8/2019     Provisional
P7335        End                19/9/2019     Provisional
-----------------------------------------------------------

基于以上数据,我需要得到这样一个表

PCode     Start          End        Status
---------------------------------------------
P1234     14/05/2019    17/06/2019   Completed
P2345     8/6/2019      19/06/2019   Progress
P7335     18/08/2019   19/09/2019    Provisional
----------------------------------------------

我不知道如何使用一些PIVOT来实现这一点

共有1个答案

符国安
2023-03-14

一个简单的条件聚合应该可以做到

这假设整个PCode记录中的状态一致

Selet PCode
     ,[Start]  = min(case when Milestone='Start' then DeliveryDate end)
     ,[Ebd]    = max(case when Milestone='End'   then DeliveryDate end)
     ,[Status] = max([Status])
 From  YourTable
 Group By PCode

编辑-查找开始和结束状态

Select PCode
     ,[Start]       = min(case when Milestone='Start' then DeliveryDate end)
     ,[End]         = max(case when Milestone='End'   then DeliveryDate end)
     ,[StatusStart] = min(case when Milestone='Start' then [Status] end)
     ,[StatusEnd]   = min(case when Milestone='End'   then [Status] end)
 From   YourTable
 Group By PCode
 类似资料:
  • 我已经用id、app和客户输入了下面的dataframe 输入数据规则 预期产出 使用pivot和groggrege-make app值作为列名,并将聚合的客户名作为数据表中的列表 val newDF=df.groupby(“id”).pivot(“app”).agg(expr(“coalesce(first(customer),0)”)).drop(“app”).show() 问题:在我的查询中

  • 我对Python和熊猫相当陌生,有一个问题我不太确定如何解决。我有一个熊猫DataFrame,其中包含在同一年为多支球队效力的曲棍球运动员: 我希望能够合并包含同一年的同一名球员的行,并按球员为其效力最多的球队排列列。在上面的例子中,B队的所有数字都是第一位的,因为球员A为B队打了最多的比赛,其次是A队,然后是C队。如果一名球员没有为多个队打过球或少于三个队打过球,我希望在给定的列中填写NA。 例

  • 对于给定的数据帧: 我如何手动重新排列列反正我想要它,例如,如果我想要以下序列: 因此,表格和绘图将采用以下方式:

  • 嘿,伙计们,在一个新的项目为一个客户,我必须做一个过滤系统的书籍,有体裁。 我做了一个多对多关系和一个透视表。到目前为止,我已经创建了带有复选框的表单,因为目标是查询两个或多个流派的组合,并且只显示具有所有选定流派的结果。 我的迁移是: 我的模型是: 这是我的控制器,我在这里使用带有流派ID的Get数组: 这里的问题是,它不是通过一个流派的组合来过滤结果,而是简单地过滤它们,如果它们有其中一个流派

  • 在上面的示例中,子集列表有23个元素。对于gridSize为12,子集列表中的23个元素应该分布在12个分区中,因此在这种情况下,每个分区应该有2个子集列表中的元素。 这个问题与spring批处理分区有关。列表中的整数实际上是spring批处理程序要处理的用户ID。有些用户比其他用户需要更多的处理时间。因此在分区过程中可能发生的情况是,某些分区可能包含比其他分区占用更多处理时间的更多用户。这会导致

  • 我正在尝试根据两个行值筛选出行。我看到的大多数问题的解决方法都采用以下方法: 可能我在这里弄得很混乱,这很简单。无论如何,任何帮助都将不胜感激! 问候