46 lines
1.5 KiB
SQL
46 lines
1.5 KiB
SQL
SELECT w_substr ,
|
|
sm_type ,
|
|
LOWER(cc_name) cc_name_lower ,
|
|
sum(CASE
|
|
WHEN (cs_ship_date_sk - cs_sold_date_sk <= 30) THEN 1
|
|
ELSE 0
|
|
END) AS "30 days",
|
|
sum(CASE
|
|
WHEN (cs_ship_date_sk - cs_sold_date_sk > 30)
|
|
AND (cs_ship_date_sk - cs_sold_date_sk <= 60) THEN 1
|
|
ELSE 0
|
|
END) AS "31-60 days",
|
|
sum(CASE
|
|
WHEN (cs_ship_date_sk - cs_sold_date_sk > 60)
|
|
AND (cs_ship_date_sk - cs_sold_date_sk <= 90) THEN 1
|
|
ELSE 0
|
|
END) AS "61-90 days",
|
|
sum(CASE
|
|
WHEN (cs_ship_date_sk - cs_sold_date_sk > 90)
|
|
AND (cs_ship_date_sk - cs_sold_date_sk <= 120) THEN 1
|
|
ELSE 0
|
|
END) AS "91-120 days",
|
|
sum(CASE
|
|
WHEN (cs_ship_date_sk - cs_sold_date_sk > 120) THEN 1
|
|
ELSE 0
|
|
END) AS ">120 days"
|
|
FROM catalog_sales ,
|
|
(SELECT SUBSTRING(w_warehouse_name,1,20) w_substr, *
|
|
FROM warehouse) AS sq1 ,
|
|
ship_mode ,
|
|
call_center ,
|
|
date_dim
|
|
WHERE d_month_seq BETWEEN 1200 AND 1200 + 11
|
|
AND cs_ship_date_sk = d_date_sk
|
|
AND cs_warehouse_sk = w_warehouse_sk
|
|
AND cs_ship_mode_sk = sm_ship_mode_sk
|
|
AND cs_call_center_sk = cc_call_center_sk
|
|
GROUP BY w_substr ,
|
|
sm_type ,
|
|
cc_name
|
|
ORDER BY w_substr NULLS FIRST,
|
|
sm_type NULLS FIRST,
|
|
cc_name_lower NULLS FIRST
|
|
LIMIT 100;
|
|
|