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

72 lines
1.9 KiB
SQL

WITH ss AS
(SELECT ca_county,
d_qoy,
d_year,
sum(ss_ext_sales_price) AS store_sales
FROM store_sales,
date_dim,
customer_address
WHERE ss_sold_date_sk = d_date_sk
AND ss_addr_sk=ca_address_sk
GROUP BY ca_county,
d_qoy,
d_year),
ws AS
(SELECT ca_county,
d_qoy,
d_year,
sum(ws_ext_sales_price) AS web_sales
FROM web_sales,
date_dim,
customer_address
WHERE ws_sold_date_sk = d_date_sk
AND ws_bill_addr_sk=ca_address_sk
GROUP BY ca_county,
d_qoy,
d_year)
SELECT ss1.ca_county ,
ss1.d_year ,
(ws2.web_sales*1.0000)/ws1.web_sales web_q1_q2_increase ,
(ss2.store_sales*1.0000)/ss1.store_sales store_q1_q2_increase ,
(ws3.web_sales*1.0000)/ws2.web_sales web_q2_q3_increase ,
(ss3.store_sales*1.0000)/ss2.store_sales store_q2_q3_increase
FROM ss ss1 ,
ss ss2 ,
ss ss3 ,
ws ws1 ,
ws ws2 ,
ws ws3
WHERE ss1.d_qoy = 1
AND ss1.d_year = 2000
AND ss1.ca_county = ss2.ca_county
AND ss2.d_qoy = 2
AND ss2.d_year = 2000
AND ss2.ca_county = ss3.ca_county
AND ss3.d_qoy = 3
AND ss3.d_year = 2000
AND ss1.ca_county = ws1.ca_county
AND ws1.d_qoy = 1
AND ws1.d_year = 2000
AND ws1.ca_county = ws2.ca_county
AND ws2.d_qoy = 2
AND ws2.d_year = 2000
AND ws1.ca_county = ws3.ca_county
AND ws3.d_qoy = 3
AND ws3.d_year = 2000
AND CASE
WHEN ws1.web_sales > 0 THEN (ws2.web_sales*1.0000)/ws1.web_sales
ELSE NULL
END > CASE
WHEN ss1.store_sales > 0 THEN (ss2.store_sales*1.0000)/ss1.store_sales
ELSE NULL
END
AND CASE
WHEN ws2.web_sales > 0 THEN (ws3.web_sales*1.0000)/ws2.web_sales
ELSE NULL
END > CASE
WHEN ss2.store_sales > 0 THEN (ss3.store_sales*1.0000)/ss2.store_sales
ELSE NULL
END
ORDER BY ss1.ca_county;