我有一张订单行表,例如
FactoryBot.define do
factory :scooties_coupon do
coupon { "43MDA" }
redeemed { false }
trait :redeemed do
redeemed { true }
end
end
end
...并且我想将其汇总并在“订单ID”级别对其进行分类,所以...
(Order ID, Product ID, Qty, Product Type)
(Order1 , SKU123 , 1 , Pen)
(Order2 , SKU234 , 1 , Pencil)
(Order3 , SKU123 , 2 , Pen)
(Order3 , SKU234 , 2 , Pencil)
是否有一种优雅的方法来获得此结果?可能有多达25种产品类型。
使用SQL,DAX或本机Power BI解决方案。
答案 0 :(得分:0)
对于此示例,您可以使用聚合和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;
答案 1 :(得分:0)
您可以按订单分组并计算不同产品类型的数量。如果产品类型超过一种,则可以显示“混合订单”
select
OrderID,
(Case
when Count(distinct ProductID) > 1 then 'Mixed Order'
else min(ProductType) + ' Order'
End) AS OrderType
from OrderDetails
group by OrderID
答案 2 :(得分:0)
在DAX中,
SUMMARIZE (
Orders,
Orders[Order ID],
"Order Type", SELECTEDVALUE ( Orders[Product Type], "Mixed" ) & " order"
)
如果有一个,SELECTEDVALUE
function返回Product Type
,否则返回“混合”结果。