需要您幫助從以下資料集中提取不同的 Parent_sku 計數。
條件:如果 parent_sku 的一個孩子的 sales_tag 為“高”,則應從“低”sales_tag 中排除該 parent_sku 計數。
PS Sales_tag 列基于 child_sku 列。
謝謝您的幫助。
日期集_&_輸出
create temp table pb_sku_high as
(
Select brand
,sales_tag
,count(distinct child_sku) as child_sku_count
,count(distinct parent_sku) as parent_sku_count
from pb_sku_base
Where sales_tag = 'High'
group by 1,2
);
drop table if exists pb_sku_low;
create temp table pb_sku_low as
(
Select brand
,sales_tag
,count(distinct child_sku) as child_sku_count
,(select count(distinct parent_sku) from pb_sku_base
where parent_sku not in
(
select parent_sku from pb_asins_base where sales_tag = 'High' group by 1
)
) as parent_sku_count
from pb_asins_base
Where sales_tag = 'High'
group by 1,2
);
Select * from pb_sku_high
union all
select * from pb_sku_low;
uj5u.com熱心網友回復:
呈現的模式不利于這種型別的查詢,但是我們可以標準化結構以根據值提取父行和子Child_sku行。
然后我們可以LEFT JOIN父子行來記錄計數。
注意:
如果每個父母有超過 1 個獨生子女,則此特定查詢可能不會回傳正確的計數,但從說明中不清楚應該如何處理,因此它可以為您提供所需的內容。
SELECT parent.Brand, CASE WHEN parent.Sales_Tag = 'High' OR child.Sales_Tag = 'High' THEN 'High' ELSE 'Low' END as Sales_Tag, COUNT(*) as P_SKU_Count
FROM Product parent
LEFT JOIN Product child ON parent.Brand = child.Brand AND parent.Parent_sku = child.parent_sku AND parent.Child_Sku <> child.Child_Sku
WHERE parent.Child_sku LIKE '%_C1'
GROUP BY parent.Brand, CASE WHEN parent.Sales_Tag = 'High' OR child.Sales_Tag = 'High' THEN 'High' ELSE 'Low' END
| 品牌 | 銷售標簽 | P_SKU_Count |
|---|---|---|
| 耐克 | 高的 | 3 |
| 耐克 | 低的 | 2 |
您還可以避免CASEinGROUP BY陳述句并回傳兩個行內計數:
SELECT parent.Brand
, SUM(CASE WHEN parent.Sales_Tag = 'High' OR child.Sales_Tag = 'High' THEN 1 END) as High
, SUM(CASE WHEN parent.Sales_Tag = 'High' OR child.Sales_Tag = 'High' THEN 0 ELSE 1 END) as Low
FROM Product parent
LEFT JOIN Product child ON parent.Brand = child.Brand AND parent.Parent_sku = child.parent_sku AND parent.Child_Sku <> child.Child_Sku
WHERE parent.Child_sku LIKE '%_C1'
GROUP BY parent.Brand;
| 品牌 | 高的 | 低的 |
|---|---|---|
| 耐克 | 3 | 2 |
這里有一個 DB Fiddle 可以測驗:https ://www.db-fiddle.com/f/s2hDvn8EU3QXcdwKqobhdc/0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/444077.html
下一篇:基于兩個單元格值的SQL過濾表
