Files
email-tracker/external/duckdb/extension/tpcds/dsdgen/queries/59.sql
2025-10-24 19:21:19 -05:00

87 lines
2.7 KiB
SQL

WITH wss AS
(SELECT d_week_seq,
ss_store_sk,
sum(CASE
WHEN (d_day_name='Sunday') THEN ss_sales_price
ELSE NULL
END) sun_sales,
sum(CASE
WHEN (d_day_name='Monday') THEN ss_sales_price
ELSE NULL
END) mon_sales,
sum(CASE
WHEN (d_day_name='Tuesday') THEN ss_sales_price
ELSE NULL
END) tue_sales,
sum(CASE
WHEN (d_day_name='Wednesday') THEN ss_sales_price
ELSE NULL
END) wed_sales,
sum(CASE
WHEN (d_day_name='Thursday') THEN ss_sales_price
ELSE NULL
END) thu_sales,
sum(CASE
WHEN (d_day_name='Friday') THEN ss_sales_price
ELSE NULL
END) fri_sales,
sum(CASE
WHEN (d_day_name='Saturday') THEN ss_sales_price
ELSE NULL
END) sat_sales
FROM store_sales,
date_dim
WHERE d_date_sk = ss_sold_date_sk
GROUP BY d_week_seq,
ss_store_sk)
SELECT s_store_name1,
s_store_id1,
d_week_seq1,
sun_sales1/sun_sales2 AS sun_sales_ratio,
mon_sales1/mon_sales2 AS mon_sales_ratio,
tue_sales1/tue_sales2 AS tue_sales_ratio,
wed_sales1/wed_sales2 AS wed_sales_ratio,
thu_sales1/thu_sales2 AS thu_sales_ratio,
fri_sales1/fri_sales2 AS fri_sales_ratio,
sat_sales1/sat_sales2 AS sat_sales_ratio
FROM
(SELECT s_store_name s_store_name1,
wss.d_week_seq d_week_seq1,
s_store_id s_store_id1,
sun_sales sun_sales1,
mon_sales mon_sales1,
tue_sales tue_sales1,
wed_sales wed_sales1,
thu_sales thu_sales1,
fri_sales fri_sales1,
sat_sales sat_sales1
FROM wss,
store,
date_dim d
WHERE d.d_week_seq = wss.d_week_seq
AND ss_store_sk = s_store_sk
AND d_month_seq BETWEEN 1212 AND 1212 + 11) y,
(SELECT s_store_name s_store_name2,
wss.d_week_seq d_week_seq2,
s_store_id s_store_id2,
sun_sales sun_sales2,
mon_sales mon_sales2,
tue_sales tue_sales2,
wed_sales wed_sales2,
thu_sales thu_sales2,
fri_sales fri_sales2,
sat_sales sat_sales2
FROM wss,
store,
date_dim d
WHERE d.d_week_seq = wss.d_week_seq
AND ss_store_sk = s_store_sk
AND d_month_seq BETWEEN 1212 + 12 AND 1212 + 23) x
WHERE s_store_id1=s_store_id2
AND d_week_seq1=d_week_seq2-52
ORDER BY s_store_name1 NULLS FIRST,
s_store_id1 NULLS FIRST,
d_week_seq1 NULLS FIRST
LIMIT 100;