【问题标题】:How to classify an customer's order based on its contents如何根据内容对客户的订单进行分类
【发布时间】:2019-07-24 15:58:21
【问题描述】:

我有一个订单行表,例如

(Order ID, Product ID, Qty, Product Type)   

(Order1 , SKU123 , 1 , Pen)

(Order2 , SKU234 , 1 , Pencil)

(Order3 , SKU123 , 2 , Pen)

(Order3 , SKU234 , 2 , Pencil)

...我想将它们汇总并在订单 ID 级别对其进行分类,所以...

(Order ID, Order Type)

(Order1 , "Pen order")

(Order2 , "Pencil order")

(Order3 , "Mixed order")

有没有一种优雅的方法可以得到这个结果?可能有多达 25 种产品类型。

对 SQL、DAX 或本机 Power BI 解决方案开放。

【问题讨论】:

    标签: sql powerbi dax


    【解决方案1】:

    在 DAX 中,

    SUMMARIZE (
        Orders,
        Orders[Order ID],
        "Order Type", SELECTEDVALUE ( Orders[Product Type], "Mixed" ) & " order"
    )
    

    SELECTEDVALUE function 如果只有一个,则返回 Product Type,否则返回替代结果“Mixed”。

    【讨论】:

      【解决方案2】:

      对于此示例,您可以使用聚合和 case 表达式:

      select orderid,
             (case when min(producttype) = max(producttype) then concat(min(producttype), ' Order')
                   else 'Mixed Order'
              end) as order_type
      from orderlines ol
      group by orderid;
      

      【讨论】:

        【解决方案3】:

        您可以按您的订单和不同产品类型的数量进行分组。如果产品类型超过 1 种,则可以显示“混合订单”

        select 
            OrderID, 
            (Case 
                when Count(distinct ProductID) > 1 then 'Mixed Order' 
                else min(ProductType) + ' Order' 
            End) AS OrderType
        from OrderDetails
        group by OrderID
        

        【讨论】:

          猜你喜欢
          • 2017-05-29
          • 1970-01-01
          • 1970-01-01
          • 2010-09-09
          • 1970-01-01
          • 2018-12-25
          • 2023-04-11
          • 2020-07-03
          • 2021-12-08
          相关资源
          最近更新 更多