summaryrefslogtreecommitdiffstats
path: root/tests/fixtures/optimizer
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fixtures/optimizer')
-rw-r--r--tests/fixtures/optimizer/canonicalize.sql3
-rw-r--r--tests/fixtures/optimizer/optimizer.sql40
-rw-r--r--tests/fixtures/optimizer/qualify_columns.sql30
-rw-r--r--tests/fixtures/optimizer/simplify.sql16
-rw-r--r--tests/fixtures/optimizer/tpc-ds/tpc-ds.sql12613
-rw-r--r--tests/fixtures/optimizer/tpc-h/tpc-h.sql36
6 files changed, 12718 insertions, 20 deletions
diff --git a/tests/fixtures/optimizer/canonicalize.sql b/tests/fixtures/optimizer/canonicalize.sql
index 50fee7f..7582f3a 100644
--- a/tests/fixtures/optimizer/canonicalize.sql
+++ b/tests/fixtures/optimizer/canonicalize.sql
@@ -10,6 +10,9 @@ SELECT CAST(1 AS VARCHAR) AS "a" FROM "w" AS "w";
SELECT CAST(1 + 3.2 AS DOUBLE) AS a FROM w AS w;
SELECT 1 + 3.2 AS "a" FROM "w" AS "w";
+SELECT CAST("2022-01-01" AS DATE) + INTERVAL '1' day;
+SELECT CAST("2022-01-01" AS DATE) + INTERVAL '1' "day" AS "_col_0";
+
--------------------------------------
-- Ensure boolean predicates
--------------------------------------
diff --git a/tests/fixtures/optimizer/optimizer.sql b/tests/fixtures/optimizer/optimizer.sql
index 0b5504d..c5112b2 100644
--- a/tests/fixtures/optimizer/optimizer.sql
+++ b/tests/fixtures/optimizer/optimizer.sql
@@ -461,3 +461,43 @@ SELECT
*
FROM "db1"."tbl" AS "tbl"
CROSS JOIN "db2"."tbl" AS "tbl_2";
+
+SELECT
+*,
+IFF(
+ IFF(
+ uploaded_at >= '2022-06-16',
+ 'workday',
+ 'bamboohr'
+ ) = source_system,
+ 1,
+ 0
+) AS sort_order
+FROM
+unioned
+WHERE
+(
+ source_system = 'workday'
+ AND '9999-01-01' >= '2022-06-16'
+)
+OR (
+ source_system = 'bamboohr'
+ AND '0001-01-01' < '2022-06-16'
+) QUALIFY ROW_NUMBER() OVER (
+ PARTITION BY unique_filter_key
+ ORDER BY
+ sort_order DESC,
+ 1
+) = 1;
+SELECT
+ *,
+ IFF(
+ IFF("unioned"."uploaded_at" >= '2022-06-16', 'workday', 'bamboohr') = "unioned"."source_system",
+ 1,
+ 0
+ ) AS "sort_order"
+FROM "unioned" AS "unioned"
+WHERE
+ "unioned"."source_system" = 'bamboohr' OR "unioned"."source_system" = 'workday'
+QUALIFY
+ ROW_NUMBER() OVER (PARTITION BY "unioned"."unique_filter_key" ORDER BY "unioned"."sort_order" DESC, 1) = 1;
diff --git a/tests/fixtures/optimizer/qualify_columns.sql b/tests/fixtures/optimizer/qualify_columns.sql
index 46c576a..df65e65 100644
--- a/tests/fixtures/optimizer/qualify_columns.sql
+++ b/tests/fixtures/optimizer/qualify_columns.sql
@@ -92,6 +92,12 @@ SELECT SUM(x.a) AS c FROM x AS x JOIN y AS y ON x.b = y.b GROUP BY y.c;
SELECT COALESCE(x.a) AS d FROM x JOIN y ON x.b = y.b GROUP BY d;
SELECT COALESCE(x.a) AS d FROM x AS x JOIN y AS y ON x.b = y.b GROUP BY COALESCE(x.a);
+SELECT a + 1 AS d FROM x WHERE d > 1;
+SELECT x.a + 1 AS d FROM x AS x WHERE x.a + 1 > 1;
+
+SELECT a + 1 AS d, d + 2 FROM x;
+SELECT x.a + 1 AS d, x.a + 1 + 2 AS _col_1 FROM x AS x;
+
SELECT a AS a, b FROM x ORDER BY a;
SELECT x.a AS a, x.b AS b FROM x AS x ORDER BY a;
@@ -282,6 +288,30 @@ SELECT COALESCE(x.b, y.b) AS b FROM x AS x JOIN y AS y ON x.b = y.b WHERE COALES
SELECT b FROM x JOIN y USING (b) JOIN z USING (b);
SELECT COALESCE(x.b, y.b, z.b) AS b FROM x AS x JOIN y AS y ON x.b = y.b JOIN z AS z ON x.b = z.b;
+SELECT * FROM x JOIN y USING(b);
+SELECT x.a AS a, COALESCE(x.b, y.b) AS b, y.c AS c FROM x AS x JOIN y AS y ON x.b = y.b;
+
+SELECT x.* FROM x JOIN y USING(b);
+SELECT x.a AS a, COALESCE(x.b, y.b) AS b FROM x AS x JOIN y AS y ON x.b = y.b;
+
+SELECT * FROM x LEFT JOIN y USING(b);
+SELECT x.a AS a, COALESCE(x.b, y.b) AS b, y.c AS c FROM x AS x LEFT JOIN y AS y ON x.b = y.b;
+
+SELECT b FROM x JOIN y USING(b);
+SELECT COALESCE(x.b, y.b) AS b FROM x AS x JOIN y AS y ON x.b = y.b;
+
+SELECT b, c FROM x JOIN y USING(b);
+SELECT COALESCE(x.b, y.b) AS b, y.c AS c FROM x AS x JOIN y AS y ON x.b = y.b;
+
+SELECT b, c FROM y JOIN z USING(b, c);
+SELECT COALESCE(y.b, z.b) AS b, COALESCE(y.c, z.c) AS c FROM y AS y JOIN z AS z ON y.b = z.b AND y.c = z.c;
+
+SELECT * FROM y JOIN z USING(b, c);
+SELECT COALESCE(y.b, z.b) AS b, COALESCE(y.c, z.c) AS c FROM y AS y JOIN z AS z ON y.b = z.b AND y.c = z.c;
+
+SELECT * FROM y JOIN z USING(b, c) WHERE b = 2 AND c = 3;
+SELECT COALESCE(y.b, z.b) AS b, COALESCE(y.c, z.c) AS c FROM y AS y JOIN z AS z ON y.b = z.b AND y.c = z.c WHERE COALESCE(y.b, z.b) = 2 AND COALESCE(y.c, z.c) = 3;
+
--------------------------------------
-- Hint with table reference
--------------------------------------
diff --git a/tests/fixtures/optimizer/simplify.sql b/tests/fixtures/optimizer/simplify.sql
index 4e9e70c..08e8700 100644
--- a/tests/fixtures/optimizer/simplify.sql
+++ b/tests/fixtures/optimizer/simplify.sql
@@ -141,6 +141,9 @@ A OR C;
(A OR C) AND (A OR B OR C);
A OR C;
+A AND (B AND C) AND (D AND E);
+A AND B AND C AND D AND E;
+
--------------------------------------
-- Elimination
--------------------------------------
@@ -249,6 +252,12 @@ x = x;
(('a' = 'a') AND TRUE and NOT FALSE);
TRUE;
+(x = y) and z;
+x = y AND z;
+
+x * (1 - y);
+x * (1 - y);
+
--------------------------------------
-- Literals
--------------------------------------
@@ -310,7 +319,7 @@ TRUE;
8.0;
6 - 2 + 4 * 2 + a;
-12 + a;
+a + 12;
a + 1 + 1 + 2;
a + 4;
@@ -367,7 +376,7 @@ interval '1' year + date '1998-01-01';
CAST('1999-01-01' AS DATE);
interval '1' year + date '1998-01-01' + 3 * 7 * 4;
-CAST('1999-01-01' AS DATE) + 84;
+84 + CAST('1999-01-01' AS DATE);
date '1998-12-01' - interval '90' foo;
CAST('1998-12-01' AS DATE) - INTERVAL '90' foo;
@@ -554,3 +563,6 @@ x <= 10 AND x >= 9;
1 < x AND 3 < x;
x > 3;
+
+'a' < 'b';
+TRUE;
diff --git a/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql b/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql
new file mode 100644
index 0000000..b92ad37
--- /dev/null
+++ b/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql
@@ -0,0 +1,12613 @@
+--------------------------------------
+-- TPC-DS 1
+--------------------------------------
+WITH customer_total_return
+ AS (SELECT sr_customer_sk AS ctr_customer_sk,
+ sr_store_sk AS ctr_store_sk,
+ Sum(sr_return_amt) AS ctr_total_return
+ FROM store_returns,
+ date_dim
+ WHERE sr_returned_date_sk = d_date_sk
+ AND d_year = 2001
+ GROUP BY sr_customer_sk,
+ sr_store_sk)
+SELECT c_customer_id
+FROM customer_total_return ctr1,
+ store,
+ customer
+WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2
+ FROM customer_total_return ctr2
+ WHERE ctr1.ctr_store_sk = ctr2.ctr_store_sk)
+ AND s_store_sk = ctr1.ctr_store_sk
+ AND s_state = 'TN'
+ AND ctr1.ctr_customer_sk = c_customer_sk
+ORDER BY c_customer_id
+LIMIT 100;
+WITH "customer_total_return" AS (
+ SELECT
+ "store_returns"."sr_customer_sk" AS "ctr_customer_sk",
+ "store_returns"."sr_store_sk" AS "ctr_store_sk",
+ SUM("store_returns"."sr_return_amt") AS "ctr_total_return"
+ FROM "store_returns" AS "store_returns"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2001
+ AND "store_returns"."sr_returned_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "store_returns"."sr_customer_sk",
+ "store_returns"."sr_store_sk"
+), "_u_0" AS (
+ SELECT
+ AVG("ctr2"."ctr_total_return") * 1.2 AS "_col_0",
+ "ctr2"."ctr_store_sk" AS "_u_1"
+ FROM "customer_total_return" AS "ctr2"
+ GROUP BY
+ "ctr2"."ctr_store_sk"
+)
+SELECT
+ "customer"."c_customer_id" AS "c_customer_id"
+FROM "customer_total_return" AS "ctr1"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "ctr1"."ctr_store_sk" = "_u_0"."_u_1"
+JOIN "store" AS "store"
+ ON "store"."s_state" = 'TN' AND "store"."s_store_sk" = "ctr1"."ctr_store_sk"
+JOIN "customer" AS "customer"
+ ON "ctr1"."ctr_customer_sk" = "customer"."c_customer_sk"
+WHERE
+ "ctr1"."ctr_total_return" > "_u_0"."_col_0"
+ORDER BY
+ "c_customer_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 2
+--------------------------------------
+WITH wscs
+ AS (SELECT sold_date_sk,
+ sales_price
+ FROM (SELECT ws_sold_date_sk sold_date_sk,
+ ws_ext_sales_price sales_price
+ FROM web_sales)
+ UNION ALL
+ (SELECT cs_sold_date_sk sold_date_sk,
+ cs_ext_sales_price sales_price
+ FROM catalog_sales)),
+ wswscs
+ AS (SELECT d_week_seq,
+ Sum(CASE
+ WHEN ( d_day_name = 'Sunday' ) THEN sales_price
+ ELSE NULL
+ END) sun_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Monday' ) THEN sales_price
+ ELSE NULL
+ END) mon_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Tuesday' ) THEN sales_price
+ ELSE NULL
+ END) tue_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Wednesday' ) THEN sales_price
+ ELSE NULL
+ END) wed_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Thursday' ) THEN sales_price
+ ELSE NULL
+ END) thu_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Friday' ) THEN sales_price
+ ELSE NULL
+ END) fri_sales,
+ Sum(CASE
+ WHEN ( d_day_name = 'Saturday' ) THEN sales_price
+ ELSE NULL
+ END) sat_sales
+ FROM wscs,
+ date_dim
+ WHERE d_date_sk = sold_date_sk
+ GROUP BY d_week_seq)
+SELECT d_week_seq1,
+ Round(sun_sales1 / sun_sales2, 2),
+ Round(mon_sales1 / mon_sales2, 2),
+ Round(tue_sales1 / tue_sales2, 2),
+ Round(wed_sales1 / wed_sales2, 2),
+ Round(thu_sales1 / thu_sales2, 2),
+ Round(fri_sales1 / fri_sales2, 2),
+ Round(sat_sales1 / sat_sales2, 2)
+FROM (SELECT wswscs.d_week_seq d_week_seq1,
+ 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 wswscs,
+ date_dim
+ WHERE date_dim.d_week_seq = wswscs.d_week_seq
+ AND d_year = 1998) y,
+ (SELECT wswscs.d_week_seq d_week_seq2,
+ 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 wswscs,
+ date_dim
+ WHERE date_dim.d_week_seq = wswscs.d_week_seq
+ AND d_year = 1998 + 1) z
+WHERE d_week_seq1 = d_week_seq2 - 53
+ORDER BY d_week_seq1;
+WITH "wscs" AS (
+ SELECT
+ "web_sales"."ws_sold_date_sk" AS "sold_date_sk",
+ "web_sales"."ws_ext_sales_price" AS "sales_price"
+ FROM "web_sales" AS "web_sales"
+ UNION ALL
+ (
+ SELECT
+ "catalog_sales"."cs_sold_date_sk" AS "sold_date_sk",
+ "catalog_sales"."cs_ext_sales_price" AS "sales_price"
+ FROM "catalog_sales" AS "catalog_sales"
+ )
+), "wswscs" AS (
+ SELECT
+ "date_dim"."d_week_seq" AS "d_week_seq",
+ SUM(
+ CASE WHEN "date_dim"."d_day_name" = 'Sunday' THEN "wscs"."sales_price" ELSE NULL END
+ ) AS "sun_sales",
+ SUM(
+ CASE WHEN "date_dim"."d_day_name" = 'Monday' THEN "wscs"."sales_price" ELSE NULL END
+ ) AS "mon_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Tuesday'
+ THEN "wscs"."sales_price"
+ ELSE NULL
+ END
+ ) AS "tue_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Wednesday'
+ THEN "wscs"."sales_price"
+ ELSE NULL
+ END
+ ) AS "wed_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Thursday'
+ THEN "wscs"."sales_price"
+ ELSE NULL
+ END
+ ) AS "thu_sales",
+ SUM(
+ CASE WHEN "date_dim"."d_day_name" = 'Friday' THEN "wscs"."sales_price" ELSE NULL END
+ ) AS "fri_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Saturday'
+ THEN "wscs"."sales_price"
+ ELSE NULL
+ END
+ ) AS "sat_sales"
+ FROM "wscs"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "wscs"."sold_date_sk"
+ GROUP BY
+ "date_dim"."d_week_seq"
+)
+SELECT
+ "wswscs"."d_week_seq" AS "d_week_seq1",
+ ROUND("wswscs"."sun_sales" / "wswscs_2"."sun_sales", 2) AS "_col_1",
+ ROUND("wswscs"."mon_sales" / "wswscs_2"."mon_sales", 2) AS "_col_2",
+ ROUND("wswscs"."tue_sales" / "wswscs_2"."tue_sales", 2) AS "_col_3",
+ ROUND("wswscs"."wed_sales" / "wswscs_2"."wed_sales", 2) AS "_col_4",
+ ROUND("wswscs"."thu_sales" / "wswscs_2"."thu_sales", 2) AS "_col_5",
+ ROUND("wswscs"."fri_sales" / "wswscs_2"."fri_sales", 2) AS "_col_6",
+ ROUND("wswscs"."sat_sales" / "wswscs_2"."sat_sales", 2) AS "_col_7"
+FROM "wswscs"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_week_seq" = "wswscs"."d_week_seq" AND "date_dim"."d_year" = 1998
+JOIN "wswscs" AS "wswscs_2"
+ ON "wswscs"."d_week_seq" = "wswscs_2"."d_week_seq" - 53
+CROSS JOIN "date_dim" AS "date_dim_2"
+WHERE
+ "date_dim_2"."d_week_seq" = "wswscs_2"."d_week_seq" AND "date_dim_2"."d_year" = 1999
+ORDER BY
+ "d_week_seq1";
+
+--------------------------------------
+-- TPC-DS 3
+--------------------------------------
+SELECT dt.d_year,
+ item.i_brand_id brand_id,
+ item.i_brand brand,
+ Sum(ss_ext_discount_amt) sum_agg
+FROM date_dim dt,
+ store_sales,
+ item
+WHERE dt.d_date_sk = store_sales.ss_sold_date_sk
+ AND store_sales.ss_item_sk = item.i_item_sk
+ AND item.i_manufact_id = 427
+ AND dt.d_moy = 11
+GROUP BY dt.d_year,
+ item.i_brand,
+ item.i_brand_id
+ORDER BY dt.d_year,
+ sum_agg DESC,
+ brand_id
+LIMIT 100;
+SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_brand_id" AS "brand_id",
+ "item"."i_brand" AS "brand",
+ SUM("store_sales"."ss_ext_discount_amt") AS "sum_agg"
+FROM "date_dim" AS "date_dim"
+JOIN "store_sales" AS "store_sales"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+JOIN "item" AS "item"
+ ON "item"."i_manufact_id" = 427 AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+WHERE
+ "date_dim"."d_moy" = 11
+GROUP BY
+ "date_dim"."d_year",
+ "item"."i_brand",
+ "item"."i_brand_id"
+ORDER BY
+ "date_dim"."d_year",
+ "sum_agg" DESC,
+ "brand_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 4
+--------------------------------------
+WITH year_total
+ AS (SELECT c_customer_id customer_id,
+ c_first_name customer_first_name,
+ c_last_name customer_last_name,
+ c_preferred_cust_flag customer_preferred_cust_flag
+ ,
+ c_birth_country
+ customer_birth_country,
+ c_login customer_login,
+ c_email_address customer_email_address,
+ d_year dyear,
+ Sum(( ( ss_ext_list_price - ss_ext_wholesale_cost
+ - ss_ext_discount_amt
+ )
+ +
+ ss_ext_sales_price ) / 2) year_total,
+ 's' sale_type
+ FROM customer,
+ store_sales,
+ date_dim
+ WHERE c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ d_year
+ UNION ALL
+ SELECT c_customer_id customer_id,
+ c_first_name customer_first_name,
+ c_last_name customer_last_name,
+ c_preferred_cust_flag
+ customer_preferred_cust_flag,
+ c_birth_country customer_birth_country
+ ,
+ c_login
+ customer_login,
+ c_email_address customer_email_address
+ ,
+ d_year dyear
+ ,
+ Sum(( ( ( cs_ext_list_price
+ - cs_ext_wholesale_cost
+ - cs_ext_discount_amt
+ ) +
+ cs_ext_sales_price ) / 2 )) year_total,
+ 'c' sale_type
+ FROM customer,
+ catalog_sales,
+ date_dim
+ WHERE c_customer_sk = cs_bill_customer_sk
+ AND cs_sold_date_sk = d_date_sk
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ d_year
+ UNION ALL
+ SELECT c_customer_id customer_id,
+ c_first_name customer_first_name,
+ c_last_name customer_last_name,
+ c_preferred_cust_flag
+ customer_preferred_cust_flag,
+ c_birth_country customer_birth_country
+ ,
+ c_login
+ customer_login,
+ c_email_address customer_email_address
+ ,
+ d_year dyear
+ ,
+ Sum(( ( ( ws_ext_list_price
+ - ws_ext_wholesale_cost
+ - ws_ext_discount_amt
+ ) +
+ ws_ext_sales_price ) / 2 )) year_total,
+ 'w' sale_type
+ FROM customer,
+ web_sales,
+ date_dim
+ WHERE c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ d_year)
+SELECT t_s_secyear.customer_id,
+ t_s_secyear.customer_first_name,
+ t_s_secyear.customer_last_name,
+ t_s_secyear.customer_preferred_cust_flag
+FROM year_total t_s_firstyear,
+ year_total t_s_secyear,
+ year_total t_c_firstyear,
+ year_total t_c_secyear,
+ year_total t_w_firstyear,
+ year_total t_w_secyear
+WHERE t_s_secyear.customer_id = t_s_firstyear.customer_id
+ AND t_s_firstyear.customer_id = t_c_secyear.customer_id
+ AND t_s_firstyear.customer_id = t_c_firstyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_firstyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_secyear.customer_id
+ AND t_s_firstyear.sale_type = 's'
+ AND t_c_firstyear.sale_type = 'c'
+ AND t_w_firstyear.sale_type = 'w'
+ AND t_s_secyear.sale_type = 's'
+ AND t_c_secyear.sale_type = 'c'
+ AND t_w_secyear.sale_type = 'w'
+ AND t_s_firstyear.dyear = 2001
+ AND t_s_secyear.dyear = 2001 + 1
+ AND t_c_firstyear.dyear = 2001
+ AND t_c_secyear.dyear = 2001 + 1
+ AND t_w_firstyear.dyear = 2001
+ AND t_w_secyear.dyear = 2001 + 1
+ AND t_s_firstyear.year_total > 0
+ AND t_c_firstyear.year_total > 0
+ AND t_w_firstyear.year_total > 0
+ AND CASE
+ WHEN t_c_firstyear.year_total > 0 THEN t_c_secyear.year_total /
+ t_c_firstyear.year_total
+ ELSE NULL
+ END > CASE
+ WHEN t_s_firstyear.year_total > 0 THEN
+ t_s_secyear.year_total /
+ t_s_firstyear.year_total
+ ELSE NULL
+ END
+ AND CASE
+ WHEN t_c_firstyear.year_total > 0 THEN t_c_secyear.year_total /
+ t_c_firstyear.year_total
+ ELSE NULL
+ END > CASE
+ WHEN t_w_firstyear.year_total > 0 THEN
+ t_w_secyear.year_total /
+ t_w_firstyear.year_total
+ ELSE NULL
+ END
+ORDER BY t_s_secyear.customer_id,
+ t_s_secyear.customer_first_name,
+ t_s_secyear.customer_last_name,
+ t_s_secyear.customer_preferred_cust_flag
+LIMIT 100;
+WITH "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_customer_id" AS "c_customer_id",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_preferred_cust_flag" AS "c_preferred_cust_flag",
+ "customer"."c_birth_country" AS "c_birth_country",
+ "customer"."c_login" AS "c_login",
+ "customer"."c_email_address" AS "c_email_address"
+ FROM "customer" AS "customer"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+), "cte" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "customer"."c_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "date_dim"."d_year" AS "dyear",
+ SUM(
+ (
+ (
+ "store_sales"."ss_ext_list_price" - "store_sales"."ss_ext_wholesale_cost" - "store_sales"."ss_ext_discount_amt"
+ ) + "store_sales"."ss_ext_sales_price"
+ ) / 2
+ ) AS "year_total",
+ 's' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "store_sales" AS "store_sales"
+ ON "customer"."c_customer_sk" = "store_sales"."ss_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "customer"."c_preferred_cust_flag",
+ "customer"."c_birth_country",
+ "customer"."c_login",
+ "customer"."c_email_address",
+ "date_dim"."d_year"
+), "cte_2" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "customer"."c_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "date_dim"."d_year" AS "dyear",
+ SUM(
+ (
+ (
+ (
+ "catalog_sales"."cs_ext_list_price" - "catalog_sales"."cs_ext_wholesale_cost" - "catalog_sales"."cs_ext_discount_amt"
+ ) + "catalog_sales"."cs_ext_sales_price"
+ ) / 2
+ )
+ ) AS "year_total",
+ 'c' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "catalog_sales" AS "catalog_sales"
+ ON "customer"."c_customer_sk" = "catalog_sales"."cs_bill_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "customer"."c_preferred_cust_flag",
+ "customer"."c_birth_country",
+ "customer"."c_login",
+ "customer"."c_email_address",
+ "date_dim"."d_year"
+), "cte_3" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "customer"."c_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "date_dim"."d_year" AS "dyear",
+ SUM(
+ (
+ (
+ (
+ "web_sales"."ws_ext_list_price" - "web_sales"."ws_ext_wholesale_cost" - "web_sales"."ws_ext_discount_amt"
+ ) + "web_sales"."ws_ext_sales_price"
+ ) / 2
+ )
+ ) AS "year_total",
+ 'w' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "web_sales" AS "web_sales"
+ ON "customer"."c_customer_sk" = "web_sales"."ws_bill_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "customer"."c_preferred_cust_flag",
+ "customer"."c_birth_country",
+ "customer"."c_login",
+ "customer"."c_email_address",
+ "date_dim"."d_year"
+), "cte_4" AS (
+ SELECT
+ "cte_2"."customer_id" AS "customer_id",
+ "cte_2"."customer_first_name" AS "customer_first_name",
+ "cte_2"."customer_last_name" AS "customer_last_name",
+ "cte_2"."customer_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "cte_2"."dyear" AS "dyear",
+ "cte_2"."year_total" AS "year_total",
+ "cte_2"."sale_type" AS "sale_type"
+ FROM "cte_2" AS "cte_2"
+ UNION ALL
+ SELECT
+ "cte_3"."customer_id" AS "customer_id",
+ "cte_3"."customer_first_name" AS "customer_first_name",
+ "cte_3"."customer_last_name" AS "customer_last_name",
+ "cte_3"."customer_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "cte_3"."dyear" AS "dyear",
+ "cte_3"."year_total" AS "year_total",
+ "cte_3"."sale_type" AS "sale_type"
+ FROM "cte_3" AS "cte_3"
+), "year_total" AS (
+ SELECT
+ "cte"."customer_id" AS "customer_id",
+ "cte"."customer_first_name" AS "customer_first_name",
+ "cte"."customer_last_name" AS "customer_last_name",
+ "cte"."customer_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "cte"."dyear" AS "dyear",
+ "cte"."year_total" AS "year_total",
+ "cte"."sale_type" AS "sale_type"
+ FROM "cte" AS "cte"
+ UNION ALL
+ SELECT
+ "cte_4"."customer_id" AS "customer_id",
+ "cte_4"."customer_first_name" AS "customer_first_name",
+ "cte_4"."customer_last_name" AS "customer_last_name",
+ "cte_4"."customer_preferred_cust_flag" AS "customer_preferred_cust_flag",
+ "cte_4"."dyear" AS "dyear",
+ "cte_4"."year_total" AS "year_total",
+ "cte_4"."sale_type" AS "sale_type"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "t_s_secyear"."customer_id" AS "customer_id",
+ "t_s_secyear"."customer_first_name" AS "customer_first_name",
+ "t_s_secyear"."customer_last_name" AS "customer_last_name",
+ "t_s_secyear"."customer_preferred_cust_flag" AS "customer_preferred_cust_flag"
+FROM "year_total" AS "t_s_firstyear"
+JOIN "year_total" AS "t_s_secyear"
+ ON "t_s_secyear"."customer_id" = "t_s_firstyear"."customer_id"
+ AND "t_s_secyear"."dyear" = 2002
+ AND "t_s_secyear"."sale_type" = 's'
+JOIN "year_total" AS "t_c_secyear"
+ ON "t_c_secyear"."dyear" = 2002
+ AND "t_c_secyear"."sale_type" = 'c'
+ AND "t_s_firstyear"."customer_id" = "t_c_secyear"."customer_id"
+JOIN "year_total" AS "t_w_firstyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_firstyear"."customer_id"
+ AND "t_w_firstyear"."dyear" = 2001
+ AND "t_w_firstyear"."sale_type" = 'w'
+ AND "t_w_firstyear"."year_total" > 0
+JOIN "year_total" AS "t_w_secyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_secyear"."customer_id"
+ AND "t_w_secyear"."dyear" = 2002
+ AND "t_w_secyear"."sale_type" = 'w'
+JOIN "year_total" AS "t_c_firstyear"
+ ON "t_c_firstyear"."dyear" = 2001
+ AND "t_c_firstyear"."sale_type" = 'c'
+ AND "t_c_firstyear"."year_total" > 0
+ AND "t_s_firstyear"."customer_id" = "t_c_firstyear"."customer_id"
+ AND CASE
+ WHEN "t_c_firstyear"."year_total" > 0
+ THEN "t_c_secyear"."year_total" / "t_c_firstyear"."year_total"
+ ELSE NULL
+ END > CASE
+ WHEN "t_s_firstyear"."year_total" > 0
+ THEN "t_s_secyear"."year_total" / "t_s_firstyear"."year_total"
+ ELSE NULL
+ END
+ AND CASE
+ WHEN "t_c_firstyear"."year_total" > 0
+ THEN "t_c_secyear"."year_total" / "t_c_firstyear"."year_total"
+ ELSE NULL
+ END > CASE
+ WHEN "t_w_firstyear"."year_total" > 0
+ THEN "t_w_secyear"."year_total" / "t_w_firstyear"."year_total"
+ ELSE NULL
+ END
+WHERE
+ "t_s_firstyear"."dyear" = 2001
+ AND "t_s_firstyear"."sale_type" = 's'
+ AND "t_s_firstyear"."year_total" > 0
+ORDER BY
+ "t_s_secyear"."customer_id",
+ "t_s_secyear"."customer_first_name",
+ "t_s_secyear"."customer_last_name",
+ "t_s_secyear"."customer_preferred_cust_flag"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 5
+--------------------------------------
+WITH ssr AS
+(
+ SELECT s_store_id,
+ Sum(sales_price) AS sales,
+ Sum(profit) AS profit,
+ Sum(return_amt) AS returns1,
+ Sum(net_loss) AS profit_loss
+ FROM (
+ SELECT ss_store_sk AS store_sk,
+ ss_sold_date_sk AS date_sk,
+ ss_ext_sales_price AS sales_price,
+ ss_net_profit AS profit,
+ Cast(0 AS DECIMAL(7,2)) AS return_amt,
+ Cast(0 AS DECIMAL(7,2)) AS net_loss
+ FROM store_sales
+ UNION ALL
+ SELECT sr_store_sk AS store_sk,
+ sr_returned_date_sk AS date_sk,
+ Cast(0 AS DECIMAL(7,2)) AS sales_price,
+ Cast(0 AS DECIMAL(7,2)) AS profit,
+ sr_return_amt AS return_amt,
+ sr_net_loss AS net_loss
+ FROM store_returns ) salesreturns,
+ date_dim,
+ store
+ WHERE date_sk = d_date_sk
+ AND d_date BETWEEN Cast('2002-08-22' AS DATE) AND (
+ Cast('2002-08-22' AS DATE) + INTERVAL '14' day)
+ AND store_sk = s_store_sk
+ GROUP BY s_store_id) , csr AS
+(
+ SELECT cp_catalog_page_id,
+ sum(sales_price) AS sales,
+ sum(profit) AS profit,
+ sum(return_amt) AS returns1,
+ sum(net_loss) AS profit_loss
+ FROM (
+ SELECT cs_catalog_page_sk AS page_sk,
+ cs_sold_date_sk AS date_sk,
+ cs_ext_sales_price AS sales_price,
+ cs_net_profit AS profit,
+ cast(0 AS decimal(7,2)) AS return_amt,
+ cast(0 AS decimal(7,2)) AS net_loss
+ FROM catalog_sales
+ UNION ALL
+ SELECT cr_catalog_page_sk AS page_sk,
+ cr_returned_date_sk AS date_sk,
+ cast(0 AS decimal(7,2)) AS sales_price,
+ cast(0 AS decimal(7,2)) AS profit,
+ cr_return_amount AS return_amt,
+ cr_net_loss AS net_loss
+ FROM catalog_returns ) salesreturns,
+ date_dim,
+ catalog_page
+ WHERE date_sk = d_date_sk
+ AND d_date BETWEEN cast('2002-08-22' AS date) AND (
+ cast('2002-08-22' AS date) + INTERVAL '14' day)
+ AND page_sk = cp_catalog_page_sk
+ GROUP BY cp_catalog_page_id) , wsr AS
+(
+ SELECT web_site_id,
+ sum(sales_price) AS sales,
+ sum(profit) AS profit,
+ sum(return_amt) AS returns1,
+ sum(net_loss) AS profit_loss
+ FROM (
+ SELECT ws_web_site_sk AS wsr_web_site_sk,
+ ws_sold_date_sk AS date_sk,
+ ws_ext_sales_price AS sales_price,
+ ws_net_profit AS profit,
+ cast(0 AS decimal(7,2)) AS return_amt,
+ cast(0 AS decimal(7,2)) AS net_loss
+ FROM web_sales
+ UNION ALL
+ SELECT ws_web_site_sk AS wsr_web_site_sk,
+ wr_returned_date_sk AS date_sk,
+ cast(0 AS decimal(7,2)) AS sales_price,
+ cast(0 AS decimal(7,2)) AS profit,
+ wr_return_amt AS return_amt,
+ wr_net_loss AS net_loss
+ FROM web_returns
+ LEFT OUTER JOIN web_sales
+ ON (
+ wr_item_sk = ws_item_sk
+ AND wr_order_number = ws_order_number) ) salesreturns,
+ date_dim,
+ web_site
+ WHERE date_sk = d_date_sk
+ AND d_date BETWEEN cast('2002-08-22' AS date) AND (
+ cast('2002-08-22' AS date) + INTERVAL '14' day)
+ AND wsr_web_site_sk = web_site_sk
+ GROUP BY web_site_id)
+SELECT
+ channel ,
+ id ,
+ sum(sales) AS sales ,
+ sum(returns1) AS returns1 ,
+ sum(profit) AS profit
+FROM (
+ SELECT 'store channel' AS channel ,
+ 'store'
+ || s_store_id AS id ,
+ sales ,
+ returns1 ,
+ (profit - profit_loss) AS profit
+ FROM ssr
+ UNION ALL
+ SELECT 'catalog channel' AS channel ,
+ 'catalog_page'
+ || cp_catalog_page_id AS id ,
+ sales ,
+ returns1 ,
+ (profit - profit_loss) AS profit
+ FROM csr
+ UNION ALL
+ SELECT 'web channel' AS channel ,
+ 'web_site'
+ || web_site_id AS id ,
+ sales ,
+ returns1 ,
+ (profit - profit_loss) AS profit
+ FROM wsr ) x
+GROUP BY rollup (channel, id)
+ORDER BY channel ,
+ id
+LIMIT 100;
+WITH "salesreturns" AS (
+ SELECT
+ "store_sales"."ss_store_sk" AS "store_sk",
+ "store_sales"."ss_sold_date_sk" AS "date_sk",
+ "store_sales"."ss_ext_sales_price" AS "sales_price",
+ "store_sales"."ss_net_profit" AS "profit",
+ CAST(0 AS DECIMAL(7, 2)) AS "return_amt",
+ CAST(0 AS DECIMAL(7, 2)) AS "net_loss"
+ FROM "store_sales" AS "store_sales"
+ UNION ALL
+ SELECT
+ "store_returns"."sr_store_sk" AS "store_sk",
+ "store_returns"."sr_returned_date_sk" AS "date_sk",
+ CAST(0 AS DECIMAL(7, 2)) AS "sales_price",
+ CAST(0 AS DECIMAL(7, 2)) AS "profit",
+ "store_returns"."sr_return_amt" AS "return_amt",
+ "store_returns"."sr_net_loss" AS "net_loss"
+ FROM "store_returns" AS "store_returns"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ CAST("date_dim"."d_date" AS DATE) <= CAST('2002-09-05' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2002-08-22' AS DATE)
+), "ssr" AS (
+ SELECT
+ "store"."s_store_id" AS "s_store_id",
+ SUM("salesreturns"."sales_price") AS "sales",
+ SUM("salesreturns"."profit") AS "profit",
+ SUM("salesreturns"."return_amt") AS "returns1",
+ SUM("salesreturns"."net_loss") AS "profit_loss"
+ FROM "salesreturns" AS "salesreturns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "salesreturns"."date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "salesreturns"."store_sk" = "store"."s_store_sk"
+ GROUP BY
+ "store"."s_store_id"
+), "salesreturns_2" AS (
+ SELECT
+ "catalog_sales"."cs_catalog_page_sk" AS "page_sk",
+ "catalog_sales"."cs_sold_date_sk" AS "date_sk",
+ "catalog_sales"."cs_ext_sales_price" AS "sales_price",
+ "catalog_sales"."cs_net_profit" AS "profit",
+ CAST(0 AS DECIMAL(7, 2)) AS "return_amt",
+ CAST(0 AS DECIMAL(7, 2)) AS "net_loss"
+ FROM "catalog_sales" AS "catalog_sales"
+ UNION ALL
+ SELECT
+ "catalog_returns"."cr_catalog_page_sk" AS "page_sk",
+ "catalog_returns"."cr_returned_date_sk" AS "date_sk",
+ CAST(0 AS DECIMAL(7, 2)) AS "sales_price",
+ CAST(0 AS DECIMAL(7, 2)) AS "profit",
+ "catalog_returns"."cr_return_amount" AS "return_amt",
+ "catalog_returns"."cr_net_loss" AS "net_loss"
+ FROM "catalog_returns" AS "catalog_returns"
+), "csr" AS (
+ SELECT
+ "catalog_page"."cp_catalog_page_id" AS "cp_catalog_page_id",
+ SUM("salesreturns"."sales_price") AS "sales",
+ SUM("salesreturns"."profit") AS "profit",
+ SUM("salesreturns"."return_amt") AS "returns1",
+ SUM("salesreturns"."net_loss") AS "profit_loss"
+ FROM "salesreturns_2" AS "salesreturns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "salesreturns"."date_sk" = "date_dim"."d_date_sk"
+ JOIN "catalog_page" AS "catalog_page"
+ ON "salesreturns"."page_sk" = "catalog_page"."cp_catalog_page_sk"
+ GROUP BY
+ "catalog_page"."cp_catalog_page_id"
+), "salesreturns_3" AS (
+ SELECT
+ "web_sales"."ws_web_site_sk" AS "wsr_web_site_sk",
+ "web_sales"."ws_sold_date_sk" AS "date_sk",
+ "web_sales"."ws_ext_sales_price" AS "sales_price",
+ "web_sales"."ws_net_profit" AS "profit",
+ CAST(0 AS DECIMAL(7, 2)) AS "return_amt",
+ CAST(0 AS DECIMAL(7, 2)) AS "net_loss"
+ FROM "web_sales" AS "web_sales"
+ UNION ALL
+ SELECT
+ "web_sales"."ws_web_site_sk" AS "wsr_web_site_sk",
+ "web_returns"."wr_returned_date_sk" AS "date_sk",
+ CAST(0 AS DECIMAL(7, 2)) AS "sales_price",
+ CAST(0 AS DECIMAL(7, 2)) AS "profit",
+ "web_returns"."wr_return_amt" AS "return_amt",
+ "web_returns"."wr_net_loss" AS "net_loss"
+ FROM "web_returns" AS "web_returns"
+ LEFT JOIN "web_sales" AS "web_sales"
+ ON "web_returns"."wr_item_sk" = "web_sales"."ws_item_sk"
+ AND "web_returns"."wr_order_number" = "web_sales"."ws_order_number"
+), "wsr" AS (
+ SELECT
+ "web_site"."web_site_id" AS "web_site_id",
+ SUM("salesreturns"."sales_price") AS "sales",
+ SUM("salesreturns"."profit") AS "profit",
+ SUM("salesreturns"."return_amt") AS "returns1",
+ SUM("salesreturns"."net_loss") AS "profit_loss"
+ FROM "salesreturns_3" AS "salesreturns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "salesreturns"."date_sk" = "date_dim"."d_date_sk"
+ JOIN "web_site" AS "web_site"
+ ON "salesreturns"."wsr_web_site_sk" = "web_site"."web_site_sk"
+ GROUP BY
+ "web_site"."web_site_id"
+), "cte_10" AS (
+ SELECT
+ 'catalog channel' AS "channel",
+ 'catalog_page' || "csr"."cp_catalog_page_id" AS "id",
+ "csr"."sales" AS "sales",
+ "csr"."returns1" AS "returns1",
+ "csr"."profit" - "csr"."profit_loss" AS "profit"
+ FROM "csr"
+ UNION ALL
+ SELECT
+ 'web channel' AS "channel",
+ 'web_site' || "wsr"."web_site_id" AS "id",
+ "wsr"."sales" AS "sales",
+ "wsr"."returns1" AS "returns1",
+ "wsr"."profit" - "wsr"."profit_loss" AS "profit"
+ FROM "wsr"
+), "x" AS (
+ SELECT
+ 'store channel' AS "channel",
+ 'store' || "ssr"."s_store_id" AS "id",
+ "ssr"."sales" AS "sales",
+ "ssr"."returns1" AS "returns1",
+ "ssr"."profit" - "ssr"."profit_loss" AS "profit"
+ FROM "ssr"
+ UNION ALL
+ SELECT
+ "cte_10"."channel" AS "channel",
+ "cte_10"."id" AS "id",
+ "cte_10"."sales" AS "sales",
+ "cte_10"."returns1" AS "returns1",
+ "cte_10"."profit" AS "profit"
+ FROM "cte_10" AS "cte_10"
+)
+SELECT
+ "x"."channel" AS "channel",
+ "x"."id" AS "id",
+ SUM("x"."sales") AS "sales",
+ SUM("x"."returns1") AS "returns1",
+ SUM("x"."profit") AS "profit"
+FROM "x" AS "x"
+GROUP BY
+ROLLUP (
+ "x"."channel",
+ "x"."id"
+)
+ORDER BY
+ "channel",
+ "id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 6
+--------------------------------------
+SELECT a.ca_state state,
+ Count(*) cnt
+FROM customer_address a,
+ customer c,
+ store_sales s,
+ date_dim d,
+ item i
+WHERE a.ca_address_sk = c.c_current_addr_sk
+ AND c.c_customer_sk = s.ss_customer_sk
+ AND s.ss_sold_date_sk = d.d_date_sk
+ AND s.ss_item_sk = i.i_item_sk
+ AND d.d_month_seq = (SELECT DISTINCT ( d_month_seq )
+ FROM date_dim
+ WHERE d_year = 1998
+ AND d_moy = 7)
+ AND i.i_current_price > 1.2 * (SELECT Avg(j.i_current_price)
+ FROM item j
+ WHERE j.i_category = i.i_category)
+GROUP BY a.ca_state
+HAVING Count(*) >= 10
+ORDER BY cnt
+LIMIT 100;
+WITH "_u_0" AS (
+ SELECT DISTINCT
+ "date_dim"."d_month_seq" AS "_col_0"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 7 AND "date_dim"."d_year" = 1998
+), "_u_1" AS (
+ SELECT
+ AVG("j"."i_current_price") AS "_col_0",
+ "j"."i_category" AS "_u_2"
+ FROM "item" AS "j"
+ GROUP BY
+ "j"."i_category"
+)
+SELECT
+ "customer_address"."ca_state" AS "state",
+ COUNT(*) AS "cnt"
+FROM "customer_address" AS "customer_address"
+CROSS JOIN "_u_0" AS "_u_0"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" = "_u_0"."_col_0"
+JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+LEFT JOIN "_u_1" AS "_u_1"
+ ON "_u_1"."_u_2" = "item"."i_category"
+JOIN "customer" AS "customer"
+ ON "customer"."c_customer_sk" = "store_sales"."ss_customer_sk"
+ AND "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+WHERE
+ "item"."i_current_price" > 1.2 * "_u_1"."_col_0"
+GROUP BY
+ "customer_address"."ca_state"
+HAVING
+ COUNT(*) >= 10
+ORDER BY
+ "cnt"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 7
+--------------------------------------
+SELECT i_item_id,
+ Avg(ss_quantity) agg1,
+ Avg(ss_list_price) agg2,
+ Avg(ss_coupon_amt) agg3,
+ Avg(ss_sales_price) agg4
+FROM store_sales,
+ customer_demographics,
+ date_dim,
+ item,
+ promotion
+WHERE ss_sold_date_sk = d_date_sk
+ AND ss_item_sk = i_item_sk
+ AND ss_cdemo_sk = cd_demo_sk
+ AND ss_promo_sk = p_promo_sk
+ AND cd_gender = 'F'
+ AND cd_marital_status = 'W'
+ AND cd_education_status = '2 yr Degree'
+ AND ( p_channel_email = 'N'
+ OR p_channel_event = 'N' )
+ AND d_year = 1998
+GROUP BY i_item_id
+ORDER BY i_item_id
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ AVG("store_sales"."ss_quantity") AS "agg1",
+ AVG("store_sales"."ss_list_price") AS "agg2",
+ AVG("store_sales"."ss_coupon_amt") AS "agg3",
+ AVG("store_sales"."ss_sales_price") AS "agg4"
+FROM "store_sales" AS "store_sales"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_education_status" = '2 yr Degree'
+ AND "customer_demographics"."cd_gender" = 'F'
+ AND "customer_demographics"."cd_marital_status" = 'W'
+ AND "store_sales"."ss_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 1998
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+JOIN "promotion" AS "promotion"
+ ON (
+ "promotion"."p_channel_email" = 'N' OR "promotion"."p_channel_event" = 'N'
+ )
+ AND "store_sales"."ss_promo_sk" = "promotion"."p_promo_sk"
+GROUP BY
+ "item"."i_item_id"
+ORDER BY
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 8
+--------------------------------------
+SELECT s_store_name,
+ Sum(ss_net_profit)
+FROM store_sales,
+ date_dim,
+ store,
+ (SELECT ca_zip
+ FROM (SELECT Substr(ca_zip, 1, 5) ca_zip
+ FROM customer_address
+ WHERE Substr(ca_zip, 1, 5) IN ( '67436', '26121', '38443',
+ '63157',
+ '68856', '19485', '86425',
+ '26741',
+ '70991', '60899', '63573',
+ '47556',
+ '56193', '93314', '87827',
+ '62017',
+ '85067', '95390', '48091',
+ '10261',
+ '81845', '41790', '42853',
+ '24675',
+ '12840', '60065', '84430',
+ '57451',
+ '24021', '91735', '75335',
+ '71935',
+ '34482', '56943', '70695',
+ '52147',
+ '56251', '28411', '86653',
+ '23005',
+ '22478', '29031', '34398',
+ '15365',
+ '42460', '33337', '59433',
+ '73943',
+ '72477', '74081', '74430',
+ '64605',
+ '39006', '11226', '49057',
+ '97308',
+ '42663', '18187', '19768',
+ '43454',
+ '32147', '76637', '51975',
+ '11181',
+ '45630', '33129', '45995',
+ '64386',
+ '55522', '26697', '20963',
+ '35154',
+ '64587', '49752', '66386',
+ '30586',
+ '59286', '13177', '66646',
+ '84195',
+ '74316', '36853', '32927',
+ '12469',
+ '11904', '36269', '17724',
+ '55346',
+ '12595', '53988', '65439',
+ '28015',
+ '63268', '73590', '29216',
+ '82575',
+ '69267', '13805', '91678',
+ '79460',
+ '94152', '14961', '15419',
+ '48277',
+ '62588', '55493', '28360',
+ '14152',
+ '55225', '18007', '53705',
+ '56573',
+ '80245', '71769', '57348',
+ '36845',
+ '13039', '17270', '22363',
+ '83474',
+ '25294', '43269', '77666',
+ '15488',
+ '99146', '64441', '43338',
+ '38736',
+ '62754', '48556', '86057',
+ '23090',
+ '38114', '66061', '18910',
+ '84385',
+ '23600', '19975', '27883',
+ '65719',
+ '19933', '32085', '49731',
+ '40473',
+ '27190', '46192', '23949',
+ '44738',
+ '12436', '64794', '68741',
+ '15333',
+ '24282', '49085', '31844',
+ '71156',
+ '48441', '17100', '98207',
+ '44982',
+ '20277', '71496', '96299',
+ '37583',
+ '22206', '89174', '30589',
+ '61924',
+ '53079', '10976', '13104',
+ '42794',
+ '54772', '15809', '56434',
+ '39975',
+ '13874', '30753', '77598',
+ '78229',
+ '59478', '12345', '55547',
+ '57422',
+ '42600', '79444', '29074',
+ '29752',
+ '21676', '32096', '43044',
+ '39383',
+ '37296', '36295', '63077',
+ '16572',
+ '31275', '18701', '40197',
+ '48242',
+ '27219', '49865', '84175',
+ '30446',
+ '25165', '13807', '72142',
+ '70499',
+ '70464', '71429', '18111',
+ '70857',
+ '29545', '36425', '52706',
+ '36194',
+ '42963', '75068', '47921',
+ '74763',
+ '90990', '89456', '62073',
+ '88397',
+ '73963', '75885', '62657',
+ '12530',
+ '81146', '57434', '25099',
+ '41429',
+ '98441', '48713', '52552',
+ '31667',
+ '14072', '13903', '44709',
+ '85429',
+ '58017', '38295', '44875',
+ '73541',
+ '30091', '12707', '23762',
+ '62258',
+ '33247', '78722', '77431',
+ '14510',
+ '35656', '72428', '92082',
+ '35267',
+ '43759', '24354', '90952',
+ '11512',
+ '21242', '22579', '56114',
+ '32339',
+ '52282', '41791', '24484',
+ '95020',
+ '28408', '99710', '11899',
+ '43344',
+ '72915', '27644', '62708',
+ '74479',
+ '17177', '32619', '12351',
+ '91339',
+ '31169', '57081', '53522',
+ '16712',
+ '34419', '71779', '44187',
+ '46206',
+ '96099', '61910', '53664',
+ '12295',
+ '31837', '33096', '10813',
+ '63048',
+ '31732', '79118', '73084',
+ '72783',
+ '84952', '46965', '77956',
+ '39815',
+ '32311', '75329', '48156',
+ '30826',
+ '49661', '13736', '92076',
+ '74865',
+ '88149', '92397', '52777',
+ '68453',
+ '32012', '21222', '52721',
+ '24626',
+ '18210', '42177', '91791',
+ '75251',
+ '82075', '44372', '45542',
+ '20609',
+ '60115', '17362', '22750',
+ '90434',
+ '31852', '54071', '33762',
+ '14705',
+ '40718', '56433', '30996',
+ '40657',
+ '49056', '23585', '66455',
+ '41021',
+ '74736', '72151', '37007',
+ '21729',
+ '60177', '84558', '59027',
+ '93855',
+ '60022', '86443', '19541',
+ '86886',
+ '30532', '39062', '48532',
+ '34713',
+ '52077', '22564', '64638',
+ '15273',
+ '31677', '36138', '62367',
+ '60261',
+ '80213', '42818', '25113',
+ '72378',
+ '69802', '69096', '55443',
+ '28820',
+ '13848', '78258', '37490',
+ '30556',
+ '77380', '28447', '44550',
+ '26791',
+ '70609', '82182', '33306',
+ '43224',
+ '22322', '86959', '68519',
+ '14308',
+ '46501', '81131', '34056',
+ '61991',
+ '19896', '87804', '65774',
+ '92564' )
+ INTERSECT
+ SELECT ca_zip
+ FROM (SELECT Substr(ca_zip, 1, 5) ca_zip,
+ Count(*) cnt
+ FROM customer_address,
+ customer
+ WHERE ca_address_sk = c_current_addr_sk
+ AND c_preferred_cust_flag = 'Y'
+ GROUP BY ca_zip
+ HAVING Count(*) > 10)A1)A2) V1
+WHERE ss_store_sk = s_store_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_qoy = 2
+ AND d_year = 2000
+ AND ( Substr(s_zip, 1, 2) = Substr(V1.ca_zip, 1, 2) )
+GROUP BY s_store_name
+ORDER BY s_store_name
+LIMIT 100;
+WITH "a1" AS (
+ SELECT
+ SUBSTR("customer_address"."ca_zip", 1, 5) AS "ca_zip"
+ FROM "customer_address" AS "customer_address", "customer" AS "customer"
+ WHERE
+ "customer"."c_preferred_cust_flag" = 'Y'
+ AND "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ GROUP BY
+ "customer_address"."ca_zip"
+ HAVING
+ COUNT(*) > 10
+), "a2" AS (
+ SELECT
+ SUBSTR("customer_address"."ca_zip", 1, 5) AS "ca_zip"
+ FROM "customer_address" AS "customer_address"
+ WHERE
+ SUBSTR("customer_address"."ca_zip", 1, 5) IN ('67436', '26121', '38443', '63157', '68856', '19485', '86425', '26741', '70991', '60899', '63573', '47556', '56193', '93314', '87827', '62017', '85067', '95390', '48091', '10261', '81845', '41790', '42853', '24675', '12840', '60065', '84430', '57451', '24021', '91735', '75335', '71935', '34482', '56943', '70695', '52147', '56251', '28411', '86653', '23005', '22478', '29031', '34398', '15365', '42460', '33337', '59433', '73943', '72477', '74081', '74430', '64605', '39006', '11226', '49057', '97308', '42663', '18187', '19768', '43454', '32147', '76637', '51975', '11181', '45630', '33129', '45995', '64386', '55522', '26697', '20963', '35154', '64587', '49752', '66386', '30586', '59286', '13177', '66646', '84195', '74316', '36853', '32927', '12469', '11904', '36269', '17724', '55346', '12595', '53988', '65439', '28015', '63268', '73590', '29216', '82575', '69267', '13805', '91678', '79460', '94152', '14961', '15419', '48277', '62588', '55493', '28360', '14152', '55225', '18007', '53705', '56573', '80245', '71769', '57348', '36845', '13039', '17270', '22363', '83474', '25294', '43269', '77666', '15488', '99146', '64441', '43338', '38736', '62754', '48556', '86057', '23090', '38114', '66061', '18910', '84385', '23600', '19975', '27883', '65719', '19933', '32085', '49731', '40473', '27190', '46192', '23949', '44738', '12436', '64794', '68741', '15333', '24282', '49085', '31844', '71156', '48441', '17100', '98207', '44982', '20277', '71496', '96299', '37583', '22206', '89174', '30589', '61924', '53079', '10976', '13104', '42794', '54772', '15809', '56434', '39975', '13874', '30753', '77598', '78229', '59478', '12345', '55547', '57422', '42600', '79444', '29074', '29752', '21676', '32096', '43044', '39383', '37296', '36295', '63077', '16572', '31275', '18701', '40197', '48242', '27219', '49865', '84175', '30446', '25165', '13807', '72142', '70499', '70464', '71429', '18111', '70857', '29545', '36425', '52706', '36194', '42963', '75068', '47921', '74763', '90990', '89456', '62073', '88397', '73963', '75885', '62657', '12530', '81146', '57434', '25099', '41429', '98441', '48713', '52552', '31667', '14072', '13903', '44709', '85429', '58017', '38295', '44875', '73541', '30091', '12707', '23762', '62258', '33247', '78722', '77431', '14510', '35656', '72428', '92082', '35267', '43759', '24354', '90952', '11512', '21242', '22579', '56114', '32339', '52282', '41791', '24484', '95020', '28408', '99710', '11899', '43344', '72915', '27644', '62708', '74479', '17177', '32619', '12351', '91339', '31169', '57081', '53522', '16712', '34419', '71779', '44187', '46206', '96099', '61910', '53664', '12295', '31837', '33096', '10813', '63048', '31732', '79118', '73084', '72783', '84952', '46965', '77956', '39815', '32311', '75329', '48156', '30826', '49661', '13736', '92076', '74865', '88149', '92397', '52777', '68453', '32012', '21222', '52721', '24626', '18210', '42177', '91791', '75251', '82075', '44372', '45542', '20609', '60115', '17362', '22750', '90434', '31852', '54071', '33762', '14705', '40718', '56433', '30996', '40657', '49056', '23585', '66455', '41021', '74736', '72151', '37007', '21729', '60177', '84558', '59027', '93855', '60022', '86443', '19541', '86886', '30532', '39062', '48532', '34713', '52077', '22564', '64638', '15273', '31677', '36138', '62367', '60261', '80213', '42818', '25113', '72378', '69802', '69096', '55443', '28820', '13848', '78258', '37490', '30556', '77380', '28447', '44550', '26791', '70609', '82182', '33306', '43224', '22322', '86959', '68519', '14308', '46501', '81131', '34056', '61991', '19896', '87804', '65774', '92564')
+ INTERSECT
+ SELECT
+ "a1"."ca_zip" AS "ca_zip"
+ FROM "a1" AS "a1"
+)
+SELECT
+ "store"."s_store_name" AS "s_store_name",
+ SUM("store_sales"."ss_net_profit") AS "_col_1"
+FROM "store_sales" AS "store_sales"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_qoy" = 2
+ AND "date_dim"."d_year" = 2000
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+JOIN "a2" AS "a2"
+ ON SUBSTR("store"."s_zip", 1, 2) = SUBSTR("a2"."ca_zip", 1, 2)
+GROUP BY
+ "store"."s_store_name"
+ORDER BY
+ "s_store_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 9
+--------------------------------------
+SELECT CASE
+ WHEN (SELECT Count(*)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 1 AND 20) > 3672 THEN
+ (SELECT Avg(ss_ext_list_price)
+ FROM store_sales
+ WHERE
+ ss_quantity BETWEEN 1 AND 20)
+ ELSE (SELECT Avg(ss_net_profit)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 1 AND 20)
+ END bucket1,
+ CASE
+ WHEN (SELECT Count(*)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 21 AND 40) > 3392 THEN
+ (SELECT Avg(ss_ext_list_price)
+ FROM store_sales
+ WHERE
+ ss_quantity BETWEEN 21 AND 40)
+ ELSE (SELECT Avg(ss_net_profit)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 21 AND 40)
+ END bucket2,
+ CASE
+ WHEN (SELECT Count(*)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 41 AND 60) > 32784 THEN
+ (SELECT Avg(ss_ext_list_price)
+ FROM store_sales
+ WHERE
+ ss_quantity BETWEEN 41 AND 60)
+ ELSE (SELECT Avg(ss_net_profit)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 41 AND 60)
+ END bucket3,
+ CASE
+ WHEN (SELECT Count(*)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 61 AND 80) > 26032 THEN
+ (SELECT Avg(ss_ext_list_price)
+ FROM store_sales
+ WHERE
+ ss_quantity BETWEEN 61 AND 80)
+ ELSE (SELECT Avg(ss_net_profit)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 61 AND 80)
+ END bucket4,
+ CASE
+ WHEN (SELECT Count(*)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 81 AND 100) > 23982 THEN
+ (SELECT Avg(ss_ext_list_price)
+ FROM store_sales
+ WHERE
+ ss_quantity BETWEEN 81 AND 100)
+ ELSE (SELECT Avg(ss_net_profit)
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 81 AND 100)
+ END bucket5
+FROM reason
+WHERE r_reason_sk = 1;
+WITH "_u_0" AS (
+ SELECT
+ COUNT(*) AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 20 AND "store_sales"."ss_quantity" >= 1
+), "_u_1" AS (
+ SELECT
+ AVG("store_sales"."ss_ext_list_price") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 20 AND "store_sales"."ss_quantity" >= 1
+), "_u_2" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 20 AND "store_sales"."ss_quantity" >= 1
+), "_u_3" AS (
+ SELECT
+ COUNT(*) AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 40 AND "store_sales"."ss_quantity" >= 21
+), "_u_4" AS (
+ SELECT
+ AVG("store_sales"."ss_ext_list_price") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 40 AND "store_sales"."ss_quantity" >= 21
+), "_u_5" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 40 AND "store_sales"."ss_quantity" >= 21
+), "_u_6" AS (
+ SELECT
+ COUNT(*) AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 60 AND "store_sales"."ss_quantity" >= 41
+), "_u_7" AS (
+ SELECT
+ AVG("store_sales"."ss_ext_list_price") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 60 AND "store_sales"."ss_quantity" >= 41
+), "_u_8" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 60 AND "store_sales"."ss_quantity" >= 41
+), "_u_9" AS (
+ SELECT
+ COUNT(*) AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 80 AND "store_sales"."ss_quantity" >= 61
+), "_u_10" AS (
+ SELECT
+ AVG("store_sales"."ss_ext_list_price") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 80 AND "store_sales"."ss_quantity" >= 61
+), "_u_11" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 80 AND "store_sales"."ss_quantity" >= 61
+), "_u_12" AS (
+ SELECT
+ COUNT(*) AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 100 AND "store_sales"."ss_quantity" >= 81
+), "_u_13" AS (
+ SELECT
+ AVG("store_sales"."ss_ext_list_price") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 100 AND "store_sales"."ss_quantity" >= 81
+), "_u_14" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "_col_0"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_quantity" <= 100 AND "store_sales"."ss_quantity" >= 81
+)
+SELECT
+ CASE WHEN "_u_0"."_col_0" > 3672 THEN "_u_1"."_col_0" ELSE "_u_2"."_col_0" END AS "bucket1",
+ CASE WHEN "_u_3"."_col_0" > 3392 THEN "_u_4"."_col_0" ELSE "_u_5"."_col_0" END AS "bucket2",
+ CASE WHEN "_u_6"."_col_0" > 32784 THEN "_u_7"."_col_0" ELSE "_u_8"."_col_0" END AS "bucket3",
+ CASE WHEN "_u_9"."_col_0" > 26032 THEN "_u_10"."_col_0" ELSE "_u_11"."_col_0" END AS "bucket4",
+ CASE WHEN "_u_12"."_col_0" > 23982 THEN "_u_13"."_col_0" ELSE "_u_14"."_col_0" END AS "bucket5"
+FROM "reason" AS "reason"
+CROSS JOIN "_u_0" AS "_u_0"
+CROSS JOIN "_u_1" AS "_u_1"
+CROSS JOIN "_u_2" AS "_u_2"
+CROSS JOIN "_u_3" AS "_u_3"
+CROSS JOIN "_u_4" AS "_u_4"
+CROSS JOIN "_u_5" AS "_u_5"
+CROSS JOIN "_u_6" AS "_u_6"
+CROSS JOIN "_u_7" AS "_u_7"
+CROSS JOIN "_u_8" AS "_u_8"
+CROSS JOIN "_u_9" AS "_u_9"
+CROSS JOIN "_u_10" AS "_u_10"
+CROSS JOIN "_u_11" AS "_u_11"
+CROSS JOIN "_u_12" AS "_u_12"
+CROSS JOIN "_u_13" AS "_u_13"
+CROSS JOIN "_u_14" AS "_u_14"
+WHERE
+ "reason"."r_reason_sk" = 1;
+
+--------------------------------------
+-- TPC-DS 10
+--------------------------------------
+SELECT cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ Count(*) cnt1,
+ cd_purchase_estimate,
+ Count(*) cnt2,
+ cd_credit_rating,
+ Count(*) cnt3,
+ cd_dep_count,
+ Count(*) cnt4,
+ cd_dep_employed_count,
+ Count(*) cnt5,
+ cd_dep_college_count,
+ Count(*) cnt6
+FROM customer c,
+ customer_address ca,
+ customer_demographics
+WHERE c.c_current_addr_sk = ca.ca_address_sk
+ AND ca_county IN ( 'Lycoming County', 'Sheridan County',
+ 'Kandiyohi County',
+ 'Pike County',
+ 'Greene County' )
+ AND cd_demo_sk = c.c_current_cdemo_sk
+ AND EXISTS (SELECT *
+ FROM store_sales,
+ date_dim
+ WHERE c.c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 2002
+ AND d_moy BETWEEN 4 AND 4 + 3)
+ AND ( EXISTS (SELECT *
+ FROM web_sales,
+ date_dim
+ WHERE c.c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 2002
+ AND d_moy BETWEEN 4 AND 4 + 3)
+ OR EXISTS (SELECT *
+ FROM catalog_sales,
+ date_dim
+ WHERE c.c_customer_sk = cs_ship_customer_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 2002
+ AND d_moy BETWEEN 4 AND 4 + 3) )
+GROUP BY cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ cd_purchase_estimate,
+ cd_credit_rating,
+ cd_dep_count,
+ cd_dep_employed_count,
+ cd_dep_college_count
+ORDER BY cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ cd_purchase_estimate,
+ cd_credit_rating,
+ cd_dep_count,
+ cd_dep_employed_count,
+ cd_dep_college_count
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date_id" AS "d_date_id",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq",
+ "date_dim"."d_week_seq" AS "d_week_seq",
+ "date_dim"."d_quarter_seq" AS "d_quarter_seq",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_dow" AS "d_dow",
+ "date_dim"."d_moy" AS "d_moy",
+ "date_dim"."d_dom" AS "d_dom",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_fy_year" AS "d_fy_year",
+ "date_dim"."d_fy_quarter_seq" AS "d_fy_quarter_seq",
+ "date_dim"."d_fy_week_seq" AS "d_fy_week_seq",
+ "date_dim"."d_day_name" AS "d_day_name",
+ "date_dim"."d_quarter_name" AS "d_quarter_name",
+ "date_dim"."d_holiday" AS "d_holiday",
+ "date_dim"."d_weekend" AS "d_weekend",
+ "date_dim"."d_following_holiday" AS "d_following_holiday",
+ "date_dim"."d_first_dom" AS "d_first_dom",
+ "date_dim"."d_last_dom" AS "d_last_dom",
+ "date_dim"."d_same_day_ly" AS "d_same_day_ly",
+ "date_dim"."d_same_day_lq" AS "d_same_day_lq",
+ "date_dim"."d_current_day" AS "d_current_day",
+ "date_dim"."d_current_week" AS "d_current_week",
+ "date_dim"."d_current_month" AS "d_current_month",
+ "date_dim"."d_current_quarter" AS "d_current_quarter",
+ "date_dim"."d_current_year" AS "d_current_year"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" <= 7 AND "date_dim"."d_moy" >= 4 AND "date_dim"."d_year" = 2002
+), "_u_0" AS (
+ SELECT
+ "store_sales"."ss_customer_sk" AS "_u_1"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "store_sales"."ss_customer_sk"
+), "_u_2" AS (
+ SELECT
+ "web_sales"."ws_bill_customer_sk" AS "_u_3"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "web_sales"."ws_bill_customer_sk"
+), "_u_4" AS (
+ SELECT
+ "catalog_sales"."cs_ship_customer_sk" AS "_u_5"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_ship_customer_sk"
+)
+SELECT
+ "customer_demographics"."cd_gender" AS "cd_gender",
+ "customer_demographics"."cd_marital_status" AS "cd_marital_status",
+ "customer_demographics"."cd_education_status" AS "cd_education_status",
+ COUNT(*) AS "cnt1",
+ "customer_demographics"."cd_purchase_estimate" AS "cd_purchase_estimate",
+ COUNT(*) AS "cnt2",
+ "customer_demographics"."cd_credit_rating" AS "cd_credit_rating",
+ COUNT(*) AS "cnt3",
+ "customer_demographics"."cd_dep_count" AS "cd_dep_count",
+ COUNT(*) AS "cnt4",
+ "customer_demographics"."cd_dep_employed_count" AS "cd_dep_employed_count",
+ COUNT(*) AS "cnt5",
+ "customer_demographics"."cd_dep_college_count" AS "cd_dep_college_count",
+ COUNT(*) AS "cnt6"
+FROM "customer" AS "customer"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "customer"."c_customer_sk" = "_u_0"."_u_1"
+LEFT JOIN "_u_2" AS "_u_2"
+ ON "customer"."c_customer_sk" = "_u_2"."_u_3"
+LEFT JOIN "_u_4" AS "_u_4"
+ ON "customer"."c_customer_sk" = "_u_4"."_u_5"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+ AND "customer_address"."ca_county" IN ('Lycoming County', 'Sheridan County', 'Kandiyohi County', 'Pike County', 'Greene County')
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_demo_sk" = "customer"."c_current_cdemo_sk"
+WHERE
+ NOT "_u_0"."_u_1" IS NULL
+ AND (
+ NOT "_u_2"."_u_3" IS NULL OR NOT "_u_4"."_u_5" IS NULL
+ )
+GROUP BY
+ "customer_demographics"."cd_gender",
+ "customer_demographics"."cd_marital_status",
+ "customer_demographics"."cd_education_status",
+ "customer_demographics"."cd_purchase_estimate",
+ "customer_demographics"."cd_credit_rating",
+ "customer_demographics"."cd_dep_count",
+ "customer_demographics"."cd_dep_employed_count",
+ "customer_demographics"."cd_dep_college_count"
+ORDER BY
+ "cd_gender",
+ "cd_marital_status",
+ "cd_education_status",
+ "cd_purchase_estimate",
+ "cd_credit_rating",
+ "cd_dep_count",
+ "cd_dep_employed_count",
+ "cd_dep_college_count"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 11
+--------------------------------------
+WITH year_total
+ AS (SELECT c_customer_id customer_id,
+ c_first_name customer_first_name
+ ,
+ c_last_name
+ customer_last_name,
+ c_preferred_cust_flag
+ customer_preferred_cust_flag
+ ,
+ c_birth_country
+ customer_birth_country,
+ c_login customer_login,
+ c_email_address
+ customer_email_address,
+ d_year dyear,
+ Sum(ss_ext_list_price - ss_ext_discount_amt) year_total,
+ 's' sale_type
+ FROM customer,
+ store_sales,
+ date_dim
+ WHERE c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ d_year
+ UNION ALL
+ SELECT c_customer_id customer_id,
+ c_first_name customer_first_name
+ ,
+ c_last_name
+ customer_last_name,
+ c_preferred_cust_flag
+ customer_preferred_cust_flag
+ ,
+ c_birth_country
+ customer_birth_country,
+ c_login customer_login,
+ c_email_address
+ customer_email_address,
+ d_year dyear,
+ Sum(ws_ext_list_price - ws_ext_discount_amt) year_total,
+ 'w' sale_type
+ FROM customer,
+ web_sales,
+ date_dim
+ WHERE c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ d_year)
+SELECT t_s_secyear.customer_id,
+ t_s_secyear.customer_first_name,
+ t_s_secyear.customer_last_name,
+ t_s_secyear.customer_birth_country
+FROM year_total t_s_firstyear,
+ year_total t_s_secyear,
+ year_total t_w_firstyear,
+ year_total t_w_secyear
+WHERE t_s_secyear.customer_id = t_s_firstyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_secyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_firstyear.customer_id
+ AND t_s_firstyear.sale_type = 's'
+ AND t_w_firstyear.sale_type = 'w'
+ AND t_s_secyear.sale_type = 's'
+ AND t_w_secyear.sale_type = 'w'
+ AND t_s_firstyear.dyear = 2001
+ AND t_s_secyear.dyear = 2001 + 1
+ AND t_w_firstyear.dyear = 2001
+ AND t_w_secyear.dyear = 2001 + 1
+ AND t_s_firstyear.year_total > 0
+ AND t_w_firstyear.year_total > 0
+ AND CASE
+ WHEN t_w_firstyear.year_total > 0 THEN t_w_secyear.year_total /
+ t_w_firstyear.year_total
+ ELSE 0.0
+ END > CASE
+ WHEN t_s_firstyear.year_total > 0 THEN
+ t_s_secyear.year_total /
+ t_s_firstyear.year_total
+ ELSE 0.0
+ END
+ORDER BY t_s_secyear.customer_id,
+ t_s_secyear.customer_first_name,
+ t_s_secyear.customer_last_name,
+ t_s_secyear.customer_birth_country
+LIMIT 100;
+WITH "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_customer_id" AS "c_customer_id",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_preferred_cust_flag" AS "c_preferred_cust_flag",
+ "customer"."c_birth_country" AS "c_birth_country",
+ "customer"."c_login" AS "c_login",
+ "customer"."c_email_address" AS "c_email_address"
+ FROM "customer" AS "customer"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+), "cte" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "customer"."c_birth_country" AS "customer_birth_country",
+ "date_dim"."d_year" AS "dyear",
+ SUM("store_sales"."ss_ext_list_price" - "store_sales"."ss_ext_discount_amt") AS "year_total",
+ 's' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "store_sales" AS "store_sales"
+ ON "customer"."c_customer_sk" = "store_sales"."ss_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "customer"."c_preferred_cust_flag",
+ "customer"."c_birth_country",
+ "customer"."c_login",
+ "customer"."c_email_address",
+ "date_dim"."d_year"
+), "cte_2" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "customer"."c_birth_country" AS "customer_birth_country",
+ "date_dim"."d_year" AS "dyear",
+ SUM("web_sales"."ws_ext_list_price" - "web_sales"."ws_ext_discount_amt") AS "year_total",
+ 'w' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "web_sales" AS "web_sales"
+ ON "customer"."c_customer_sk" = "web_sales"."ws_bill_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "customer"."c_preferred_cust_flag",
+ "customer"."c_birth_country",
+ "customer"."c_login",
+ "customer"."c_email_address",
+ "date_dim"."d_year"
+), "year_total" AS (
+ SELECT
+ "cte"."customer_id" AS "customer_id",
+ "cte"."customer_first_name" AS "customer_first_name",
+ "cte"."customer_last_name" AS "customer_last_name",
+ "cte"."customer_birth_country" AS "customer_birth_country",
+ "cte"."dyear" AS "dyear",
+ "cte"."year_total" AS "year_total",
+ "cte"."sale_type" AS "sale_type"
+ FROM "cte" AS "cte"
+ UNION ALL
+ SELECT
+ "cte_2"."customer_id" AS "customer_id",
+ "cte_2"."customer_first_name" AS "customer_first_name",
+ "cte_2"."customer_last_name" AS "customer_last_name",
+ "cte_2"."customer_birth_country" AS "customer_birth_country",
+ "cte_2"."dyear" AS "dyear",
+ "cte_2"."year_total" AS "year_total",
+ "cte_2"."sale_type" AS "sale_type"
+ FROM "cte_2" AS "cte_2"
+)
+SELECT
+ "t_s_secyear"."customer_id" AS "customer_id",
+ "t_s_secyear"."customer_first_name" AS "customer_first_name",
+ "t_s_secyear"."customer_last_name" AS "customer_last_name",
+ "t_s_secyear"."customer_birth_country" AS "customer_birth_country"
+FROM "year_total" AS "t_s_firstyear"
+JOIN "year_total" AS "t_s_secyear"
+ ON "t_s_secyear"."customer_id" = "t_s_firstyear"."customer_id"
+ AND "t_s_secyear"."dyear" = 2002
+ AND "t_s_secyear"."sale_type" = 's'
+JOIN "year_total" AS "t_w_secyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_secyear"."customer_id"
+ AND "t_w_secyear"."dyear" = 2002
+ AND "t_w_secyear"."sale_type" = 'w'
+JOIN "year_total" AS "t_w_firstyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_firstyear"."customer_id"
+ AND "t_w_firstyear"."dyear" = 2001
+ AND "t_w_firstyear"."sale_type" = 'w'
+ AND "t_w_firstyear"."year_total" > 0
+ AND CASE
+ WHEN "t_w_firstyear"."year_total" > 0
+ THEN "t_w_secyear"."year_total" / "t_w_firstyear"."year_total"
+ ELSE 0.0
+ END > CASE
+ WHEN "t_s_firstyear"."year_total" > 0
+ THEN "t_s_secyear"."year_total" / "t_s_firstyear"."year_total"
+ ELSE 0.0
+ END
+WHERE
+ "t_s_firstyear"."dyear" = 2001
+ AND "t_s_firstyear"."sale_type" = 's'
+ AND "t_s_firstyear"."year_total" > 0
+ORDER BY
+ "t_s_secyear"."customer_id",
+ "t_s_secyear"."customer_first_name",
+ "t_s_secyear"."customer_last_name",
+ "t_s_secyear"."customer_birth_country"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 12
+--------------------------------------
+SELECT
+ i_item_id ,
+ i_item_desc ,
+ i_category ,
+ i_class ,
+ i_current_price ,
+ Sum(ws_ext_sales_price) AS itemrevenue ,
+ Sum(ws_ext_sales_price)*100/Sum(Sum(ws_ext_sales_price)) OVER (partition BY i_class) AS revenueratio
+FROM web_sales ,
+ item ,
+ date_dim
+WHERE ws_item_sk = i_item_sk
+AND i_category IN ('Home',
+ 'Men',
+ 'Women')
+AND ws_sold_date_sk = d_date_sk
+AND d_date BETWEEN Cast('2000-05-11' AS DATE) AND (
+ Cast('2000-05-11' AS DATE) + INTERVAL '30' day)
+GROUP BY i_item_id ,
+ i_item_desc ,
+ i_category ,
+ i_class ,
+ i_current_price
+ORDER BY i_category ,
+ i_class ,
+ i_item_id ,
+ i_item_desc ,
+ revenueratio
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ "item"."i_current_price" AS "i_current_price",
+ SUM("web_sales"."ws_ext_sales_price") AS "itemrevenue",
+ SUM("web_sales"."ws_ext_sales_price") * 100 / SUM(SUM("web_sales"."ws_ext_sales_price")) OVER (PARTITION BY "item"."i_class") AS "revenueratio"
+FROM "web_sales" AS "web_sales"
+JOIN "item" AS "item"
+ ON "item"."i_category" IN ('Home', 'Men', 'Women')
+ AND "web_sales"."ws_item_sk" = "item"."i_item_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2000-06-10' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2000-05-11' AS DATE)
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "item"."i_category",
+ "item"."i_class",
+ "item"."i_current_price"
+ORDER BY
+ "i_category",
+ "i_class",
+ "i_item_id",
+ "i_item_desc",
+ "revenueratio"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 13
+--------------------------------------
+SELECT Avg(ss_quantity),
+ Avg(ss_ext_sales_price),
+ Avg(ss_ext_wholesale_cost),
+ Sum(ss_ext_wholesale_cost)
+FROM store_sales,
+ store,
+ customer_demographics,
+ household_demographics,
+ customer_address,
+ date_dim
+WHERE s_store_sk = ss_store_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 2001
+ AND ( ( ss_hdemo_sk = hd_demo_sk
+ AND cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'U'
+ AND cd_education_status = 'Advanced Degree'
+ AND ss_sales_price BETWEEN 100.00 AND 150.00
+ AND hd_dep_count = 3 )
+ OR ( ss_hdemo_sk = hd_demo_sk
+ AND cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'M'
+ AND cd_education_status = 'Primary'
+ AND ss_sales_price BETWEEN 50.00 AND 100.00
+ AND hd_dep_count = 1 )
+ OR ( ss_hdemo_sk = hd_demo_sk
+ AND cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'D'
+ AND cd_education_status = 'Secondary'
+ AND ss_sales_price BETWEEN 150.00 AND 200.00
+ AND hd_dep_count = 1 ) )
+ AND ( ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'AZ', 'NE', 'IA' )
+ AND ss_net_profit BETWEEN 100 AND 200 )
+ OR ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'MS', 'CA', 'NV' )
+ AND ss_net_profit BETWEEN 150 AND 300 )
+ OR ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'GA', 'TX', 'NJ' )
+ AND ss_net_profit BETWEEN 50 AND 250 ) );
+SELECT
+ AVG("store_sales"."ss_quantity") AS "_col_0",
+ AVG("store_sales"."ss_ext_sales_price") AS "_col_1",
+ AVG("store_sales"."ss_ext_wholesale_cost") AS "_col_2",
+ SUM("store_sales"."ss_ext_wholesale_cost") AS "_col_3"
+FROM "store_sales" AS "store_sales"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+CROSS JOIN "household_demographics" AS "household_demographics"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_demo_sk" = "store_sales"."ss_cdemo_sk"
+ AND "customer_demographics"."cd_education_status" = 'Advanced Degree'
+ AND "customer_demographics"."cd_education_status" = 'Primary'
+ AND "customer_demographics"."cd_education_status" = 'Secondary'
+ AND "customer_demographics"."cd_marital_status" = 'D'
+ AND "customer_demographics"."cd_marital_status" = 'M'
+ AND "customer_demographics"."cd_marital_status" = 'U'
+ AND "household_demographics"."hd_dep_count" = 1
+ AND "household_demographics"."hd_dep_count" = 3
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sales_price" <= 100.00
+ AND "store_sales"."ss_sales_price" >= 150.00
+JOIN "customer_address" AS "customer_address"
+ ON (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('AZ', 'NE', 'IA')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 200
+ AND "store_sales"."ss_net_profit" >= 100
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('GA', 'TX', 'NJ')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 250
+ AND "store_sales"."ss_net_profit" >= 50
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('MS', 'CA', 'NV')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 300
+ AND "store_sales"."ss_net_profit" >= 150
+ )
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2001
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk";
+
+--------------------------------------
+-- TPC-DS 14
+--------------------------------------
+WITH cross_items
+ AS (SELECT i_item_sk ss_item_sk
+ FROM item,
+ (SELECT iss.i_brand_id brand_id,
+ iss.i_class_id class_id,
+ iss.i_category_id category_id
+ FROM store_sales,
+ item iss,
+ date_dim d1
+ WHERE ss_item_sk = iss.i_item_sk
+ AND ss_sold_date_sk = d1.d_date_sk
+ AND d1.d_year BETWEEN 1999 AND 1999 + 2
+ INTERSECT
+ SELECT ics.i_brand_id,
+ ics.i_class_id,
+ ics.i_category_id
+ FROM catalog_sales,
+ item ics,
+ date_dim d2
+ WHERE cs_item_sk = ics.i_item_sk
+ AND cs_sold_date_sk = d2.d_date_sk
+ AND d2.d_year BETWEEN 1999 AND 1999 + 2
+ INTERSECT
+ SELECT iws.i_brand_id,
+ iws.i_class_id,
+ iws.i_category_id
+ FROM web_sales,
+ item iws,
+ date_dim d3
+ WHERE ws_item_sk = iws.i_item_sk
+ AND ws_sold_date_sk = d3.d_date_sk
+ AND d3.d_year BETWEEN 1999 AND 1999 + 2)
+ WHERE i_brand_id = brand_id
+ AND i_class_id = class_id
+ AND i_category_id = category_id),
+ avg_sales
+ AS (SELECT Avg(quantity * list_price) average_sales
+ FROM (SELECT ss_quantity quantity,
+ ss_list_price list_price
+ FROM store_sales,
+ date_dim
+ WHERE ss_sold_date_sk = d_date_sk
+ AND d_year BETWEEN 1999 AND 1999 + 2
+ UNION ALL
+ SELECT cs_quantity quantity,
+ cs_list_price list_price
+ FROM catalog_sales,
+ date_dim
+ WHERE cs_sold_date_sk = d_date_sk
+ AND d_year BETWEEN 1999 AND 1999 + 2
+ UNION ALL
+ SELECT ws_quantity quantity,
+ ws_list_price list_price
+ FROM web_sales,
+ date_dim
+ WHERE ws_sold_date_sk = d_date_sk
+ AND d_year BETWEEN 1999 AND 1999 + 2) x)
+SELECT channel,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ Sum(sales),
+ Sum(number_sales)
+FROM (SELECT 'store' channel,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ Sum(ss_quantity * ss_list_price) sales,
+ Count(*) number_sales
+ FROM store_sales,
+ item,
+ date_dim
+ WHERE ss_item_sk IN (SELECT ss_item_sk
+ FROM cross_items)
+ AND ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1999 + 2
+ AND d_moy = 11
+ GROUP BY i_brand_id,
+ i_class_id,
+ i_category_id
+ HAVING Sum(ss_quantity * ss_list_price) > (SELECT average_sales
+ FROM avg_sales)
+ UNION ALL
+ SELECT 'catalog' channel,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ Sum(cs_quantity * cs_list_price) sales,
+ Count(*) number_sales
+ FROM catalog_sales,
+ item,
+ date_dim
+ WHERE cs_item_sk IN (SELECT ss_item_sk
+ FROM cross_items)
+ AND cs_item_sk = i_item_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 1999 + 2
+ AND d_moy = 11
+ GROUP BY i_brand_id,
+ i_class_id,
+ i_category_id
+ HAVING Sum(cs_quantity * cs_list_price) > (SELECT average_sales
+ FROM avg_sales)
+ UNION ALL
+ SELECT 'web' channel,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ Sum(ws_quantity * ws_list_price) sales,
+ Count(*) number_sales
+ FROM web_sales,
+ item,
+ date_dim
+ WHERE ws_item_sk IN (SELECT ss_item_sk
+ FROM cross_items)
+ AND ws_item_sk = i_item_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 1999 + 2
+ AND d_moy = 11
+ GROUP BY i_brand_id,
+ i_class_id,
+ i_category_id
+ HAVING Sum(ws_quantity * ws_list_price) > (SELECT average_sales
+ FROM avg_sales)) y
+GROUP BY rollup ( channel, i_brand_id, i_class_id, i_category_id )
+ORDER BY channel,
+ i_brand_id,
+ i_class_id,
+ i_category_id
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id"
+ FROM "item" AS "item"
+), "d1" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_year" <= 2001 AND "date_dim"."d_year" >= 1999
+), "cte_4" AS (
+ SELECT
+ "ics"."i_brand_id" AS "i_brand_id",
+ "ics"."i_class_id" AS "i_class_id",
+ "ics"."i_category_id" AS "i_category_id"
+ FROM "catalog_sales" AS "catalog_sales"
+ CROSS JOIN "item_2" AS "ics"
+ CROSS JOIN "d1" AS "d2"
+ WHERE
+ "catalog_sales"."cs_item_sk" = "ics"."i_item_sk"
+ AND "catalog_sales"."cs_sold_date_sk" = "d2"."d_date_sk"
+ INTERSECT
+ SELECT
+ "iws"."i_brand_id" AS "i_brand_id",
+ "iws"."i_class_id" AS "i_class_id",
+ "iws"."i_category_id" AS "i_category_id"
+ FROM "web_sales" AS "web_sales"
+ CROSS JOIN "item_2" AS "iws"
+ CROSS JOIN "d1" AS "d3"
+ WHERE
+ "web_sales"."ws_item_sk" = "iws"."i_item_sk"
+ AND "web_sales"."ws_sold_date_sk" = "d3"."d_date_sk"
+), "_q_0" AS (
+ SELECT
+ "iss"."i_brand_id" AS "brand_id",
+ "iss"."i_class_id" AS "class_id",
+ "iss"."i_category_id" AS "category_id"
+ FROM "store_sales" AS "store_sales"
+ CROSS JOIN "item_2" AS "iss"
+ CROSS JOIN "d1" AS "d1"
+ WHERE
+ "store_sales"."ss_item_sk" = "iss"."i_item_sk"
+ AND "store_sales"."ss_sold_date_sk" = "d1"."d_date_sk"
+ INTERSECT
+ SELECT
+ "cte_4"."i_brand_id" AS "i_brand_id",
+ "cte_4"."i_class_id" AS "i_class_id",
+ "cte_4"."i_category_id" AS "i_category_id"
+ FROM "cte_4" AS "cte_4"
+), "cte_8" AS (
+ SELECT
+ "catalog_sales"."cs_quantity" AS "quantity",
+ "catalog_sales"."cs_list_price" AS "list_price"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "d1" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ UNION ALL
+ SELECT
+ "web_sales"."ws_quantity" AS "quantity",
+ "web_sales"."ws_list_price" AS "list_price"
+ FROM "web_sales" AS "web_sales"
+ JOIN "d1" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+), "x" AS (
+ SELECT
+ "store_sales"."ss_quantity" AS "quantity",
+ "store_sales"."ss_list_price" AS "list_price"
+ FROM "store_sales" AS "store_sales"
+ JOIN "d1" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ UNION ALL
+ SELECT
+ "cte_8"."quantity" AS "quantity",
+ "cte_8"."list_price" AS "list_price"
+ FROM "cte_8" AS "cte_8"
+), "avg_sales" AS (
+ SELECT
+ AVG("x"."quantity" * "x"."list_price") AS "average_sales"
+ FROM "x" AS "x"
+), "_u_0" AS (
+ SELECT
+ "item"."i_item_sk" AS "ss_item_sk"
+ FROM "item_2" AS "item"
+ JOIN "_q_0" AS "_q_0"
+ ON "item"."i_brand_id" = "_q_0"."brand_id"
+ AND "item"."i_category_id" = "_q_0"."category_id"
+ AND "item"."i_class_id" = "_q_0"."class_id"
+ GROUP BY
+ "item"."i_item_sk"
+), "_u_1" AS (
+ SELECT
+ "avg_sales"."average_sales" AS "average_sales"
+ FROM "avg_sales"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 11 AND "date_dim"."d_year" = 2001
+), "cte_9" AS (
+ SELECT
+ 'store' AS "channel",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ SUM("store_sales"."ss_quantity" * "store_sales"."ss_list_price") AS "sales",
+ COUNT(*) AS "number_sales"
+ FROM "store_sales" AS "store_sales"
+ LEFT JOIN "_u_0" AS "_u_0"
+ ON "store_sales"."ss_item_sk" = "_u_0"."ss_item_sk"
+ CROSS JOIN "_u_1" AS "_u_1"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "_u_0"."ss_item_sk" IS NULL
+ GROUP BY
+ "item"."i_brand_id",
+ "item"."i_class_id",
+ "item"."i_category_id"
+ HAVING
+ SUM("store_sales"."ss_quantity" * "store_sales"."ss_list_price") > MAX("_u_1"."average_sales")
+), "cte_10" AS (
+ SELECT
+ 'catalog' AS "channel",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ SUM("catalog_sales"."cs_quantity" * "catalog_sales"."cs_list_price") AS "sales",
+ COUNT(*) AS "number_sales"
+ FROM "catalog_sales" AS "catalog_sales"
+ LEFT JOIN "_u_0" AS "_u_2"
+ ON "catalog_sales"."cs_item_sk" = "_u_2"."ss_item_sk"
+ CROSS JOIN "_u_1" AS "_u_3"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "_u_2"."ss_item_sk" IS NULL
+ GROUP BY
+ "item"."i_brand_id",
+ "item"."i_class_id",
+ "item"."i_category_id"
+ HAVING
+ SUM("catalog_sales"."cs_quantity" * "catalog_sales"."cs_list_price") > MAX("_u_3"."average_sales")
+), "cte_11" AS (
+ SELECT
+ 'web' AS "channel",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ SUM("web_sales"."ws_quantity" * "web_sales"."ws_list_price") AS "sales",
+ COUNT(*) AS "number_sales"
+ FROM "web_sales" AS "web_sales"
+ LEFT JOIN "_u_0" AS "_u_4"
+ ON "web_sales"."ws_item_sk" = "_u_4"."ss_item_sk"
+ CROSS JOIN "_u_1" AS "_u_5"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "_u_4"."ss_item_sk" IS NULL
+ GROUP BY
+ "item"."i_brand_id",
+ "item"."i_class_id",
+ "item"."i_category_id"
+ HAVING
+ SUM("web_sales"."ws_quantity" * "web_sales"."ws_list_price") > MAX("_u_5"."average_sales")
+), "cte_12" AS (
+ SELECT
+ "cte_10"."channel" AS "channel",
+ "cte_10"."i_brand_id" AS "i_brand_id",
+ "cte_10"."i_class_id" AS "i_class_id",
+ "cte_10"."i_category_id" AS "i_category_id",
+ "cte_10"."sales" AS "sales",
+ "cte_10"."number_sales" AS "number_sales"
+ FROM "cte_10" AS "cte_10"
+ UNION ALL
+ SELECT
+ "cte_11"."channel" AS "channel",
+ "cte_11"."i_brand_id" AS "i_brand_id",
+ "cte_11"."i_class_id" AS "i_class_id",
+ "cte_11"."i_category_id" AS "i_category_id",
+ "cte_11"."sales" AS "sales",
+ "cte_11"."number_sales" AS "number_sales"
+ FROM "cte_11" AS "cte_11"
+), "y" AS (
+ SELECT
+ "cte_9"."channel" AS "channel",
+ "cte_9"."i_brand_id" AS "i_brand_id",
+ "cte_9"."i_class_id" AS "i_class_id",
+ "cte_9"."i_category_id" AS "i_category_id",
+ "cte_9"."sales" AS "sales",
+ "cte_9"."number_sales" AS "number_sales"
+ FROM "cte_9" AS "cte_9"
+ UNION ALL
+ SELECT
+ "cte_12"."channel" AS "channel",
+ "cte_12"."i_brand_id" AS "i_brand_id",
+ "cte_12"."i_class_id" AS "i_class_id",
+ "cte_12"."i_category_id" AS "i_category_id",
+ "cte_12"."sales" AS "sales",
+ "cte_12"."number_sales" AS "number_sales"
+ FROM "cte_12" AS "cte_12"
+)
+SELECT
+ "y"."channel" AS "channel",
+ "y"."i_brand_id" AS "i_brand_id",
+ "y"."i_class_id" AS "i_class_id",
+ "y"."i_category_id" AS "i_category_id",
+ SUM("y"."sales") AS "_col_4",
+ SUM("y"."number_sales") AS "_col_5"
+FROM "y" AS "y"
+GROUP BY
+ROLLUP (
+ "y"."channel",
+ "y"."i_brand_id",
+ "y"."i_class_id",
+ "y"."i_category_id"
+)
+ORDER BY
+ "channel",
+ "i_brand_id",
+ "i_class_id",
+ "i_category_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 15
+--------------------------------------
+SELECT ca_zip,
+ Sum(cs_sales_price)
+FROM catalog_sales,
+ customer,
+ customer_address,
+ date_dim
+WHERE cs_bill_customer_sk = c_customer_sk
+ AND c_current_addr_sk = ca_address_sk
+ AND ( Substr(ca_zip, 1, 5) IN ( '85669', '86197', '88274', '83405',
+ '86475', '85392', '85460', '80348',
+ '81792' )
+ OR ca_state IN ( 'CA', 'WA', 'GA' )
+ OR cs_sales_price > 500 )
+ AND cs_sold_date_sk = d_date_sk
+ AND d_qoy = 1
+ AND d_year = 1998
+GROUP BY ca_zip
+ORDER BY ca_zip
+LIMIT 100;
+SELECT
+ "customer_address"."ca_zip" AS "ca_zip",
+ SUM("catalog_sales"."cs_sales_price") AS "_col_1"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "customer_address" AS "customer_address"
+ ON "catalog_sales"."cs_sales_price" > 500
+ OR "customer_address"."ca_state" IN ('CA', 'WA', 'GA')
+ OR SUBSTR("customer_address"."ca_zip", 1, 5) IN ('85669', '86197', '88274', '83405', '86475', '85392', '85460', '80348', '81792')
+JOIN "customer" AS "customer"
+ ON "catalog_sales"."cs_bill_customer_sk" = "customer"."c_customer_sk"
+ AND "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_qoy" = 1
+ AND "date_dim"."d_year" = 1998
+GROUP BY
+ "customer_address"."ca_zip"
+ORDER BY
+ "ca_zip"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 16
+--------------------------------------
+SELECT
+ Count(DISTINCT cs_order_number) AS "order count" ,
+ Sum(cs_ext_ship_cost) AS "total shipping cost" ,
+ Sum(cs_net_profit) AS "total net profit"
+FROM catalog_sales cs1 ,
+ date_dim ,
+ customer_address ,
+ call_center
+WHERE d_date BETWEEN '2002-3-01' AND (
+ Cast('2002-3-01' AS DATE) + INTERVAL '60' day)
+AND cs1.cs_ship_date_sk = d_date_sk
+AND cs1.cs_ship_addr_sk = ca_address_sk
+AND ca_state = 'IA'
+AND cs1.cs_call_center_sk = cc_call_center_sk
+AND cc_county IN ('Williamson County',
+ 'Williamson County',
+ 'Williamson County',
+ 'Williamson County',
+ 'Williamson County' )
+AND EXISTS
+ (
+ SELECT *
+ FROM catalog_sales cs2
+ WHERE cs1.cs_order_number = cs2.cs_order_number
+ AND cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk)
+AND NOT EXISTS
+ (
+ SELECT *
+ FROM catalog_returns cr1
+ WHERE cs1.cs_order_number = cr1.cr_order_number)
+ORDER BY count(DISTINCT cs_order_number)
+LIMIT 100;
+WITH "_u_0" AS (
+ SELECT
+ "cs2"."cs_order_number" AS "_u_1",
+ ARRAY_AGG("cs2"."cs_warehouse_sk") AS "_u_2"
+ FROM "catalog_sales" AS "cs2"
+ GROUP BY
+ "cs2"."cs_order_number"
+), "_u_3" AS (
+ SELECT
+ "cr1"."cr_order_number" AS "_u_4"
+ FROM "catalog_returns" AS "cr1"
+ GROUP BY
+ "cr1"."cr_order_number"
+)
+SELECT
+ COUNT(DISTINCT "catalog_sales"."cs_order_number") AS "order count",
+ SUM("catalog_sales"."cs_ext_ship_cost") AS "total shipping cost",
+ SUM("catalog_sales"."cs_net_profit") AS "total net profit"
+FROM "catalog_sales" AS "catalog_sales"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "catalog_sales"."cs_order_number" = "_u_0"."_u_1"
+LEFT JOIN "_u_3" AS "_u_3"
+ ON "catalog_sales"."cs_order_number" = "_u_3"."_u_4"
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_ship_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_date" >= '2002-3-01'
+ AND CAST("date_dim"."d_date" AS DATE) <= (
+ CAST('2002-3-01' AS DATE) + INTERVAL '60' "day"
+ )
+JOIN "customer_address" AS "customer_address"
+ ON "catalog_sales"."cs_ship_addr_sk" = "customer_address"."ca_address_sk"
+ AND "customer_address"."ca_state" = 'IA'
+JOIN "call_center" AS "call_center"
+ ON "call_center"."cc_county" IN ('Williamson County', 'Williamson County', 'Williamson County', 'Williamson County', 'Williamson County')
+ AND "catalog_sales"."cs_call_center_sk" = "call_center"."cc_call_center_sk"
+WHERE
+ "_u_3"."_u_4" IS NULL
+ AND ARRAY_ANY("_u_0"."_u_2", "_x" -> "catalog_sales"."cs_warehouse_sk" <> "_x")
+ AND NOT "_u_0"."_u_1" IS NULL
+ORDER BY
+ COUNT(DISTINCT "catalog_sales"."cs_order_number")
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 17
+--------------------------------------
+SELECT i_item_id,
+ i_item_desc,
+ s_state,
+ Count(ss_quantity) AS
+ store_sales_quantitycount,
+ Avg(ss_quantity) AS
+ store_sales_quantityave,
+ Stddev_samp(ss_quantity) AS
+ store_sales_quantitystdev,
+ Stddev_samp(ss_quantity) / Avg(ss_quantity) AS
+ store_sales_quantitycov,
+ Count(sr_return_quantity) AS
+ store_returns_quantitycount,
+ Avg(sr_return_quantity) AS
+ store_returns_quantityave,
+ Stddev_samp(sr_return_quantity) AS
+ store_returns_quantitystdev,
+ Stddev_samp(sr_return_quantity) / Avg(sr_return_quantity) AS
+ store_returns_quantitycov,
+ Count(cs_quantity) AS
+ catalog_sales_quantitycount,
+ Avg(cs_quantity) AS
+ catalog_sales_quantityave,
+ Stddev_samp(cs_quantity) / Avg(cs_quantity) AS
+ catalog_sales_quantitystdev,
+ Stddev_samp(cs_quantity) / Avg(cs_quantity) AS
+ catalog_sales_quantitycov
+FROM store_sales,
+ store_returns,
+ catalog_sales,
+ date_dim d1,
+ date_dim d2,
+ date_dim d3,
+ store,
+ item
+WHERE d1.d_quarter_name = '1999Q1'
+ AND d1.d_date_sk = ss_sold_date_sk
+ AND i_item_sk = ss_item_sk
+ AND s_store_sk = ss_store_sk
+ AND ss_customer_sk = sr_customer_sk
+ AND ss_item_sk = sr_item_sk
+ AND ss_ticket_number = sr_ticket_number
+ AND sr_returned_date_sk = d2.d_date_sk
+ AND d2.d_quarter_name IN ( '1999Q1', '1999Q2', '1999Q3' )
+ AND sr_customer_sk = cs_bill_customer_sk
+ AND sr_item_sk = cs_item_sk
+ AND cs_sold_date_sk = d3.d_date_sk
+ AND d3.d_quarter_name IN ( '1999Q1', '1999Q2', '1999Q3' )
+GROUP BY i_item_id,
+ i_item_desc,
+ s_state
+ORDER BY i_item_id,
+ i_item_desc,
+ s_state
+LIMIT 100;
+WITH "d3" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_quarter_name" AS "d_quarter_name"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_quarter_name" IN ('1999Q1', '1999Q2', '1999Q3')
+)
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "store"."s_state" AS "s_state",
+ COUNT("store_sales"."ss_quantity") AS "store_sales_quantitycount",
+ AVG("store_sales"."ss_quantity") AS "store_sales_quantityave",
+ STDDEV_SAMP("store_sales"."ss_quantity") AS "store_sales_quantitystdev",
+ STDDEV_SAMP("store_sales"."ss_quantity") / AVG("store_sales"."ss_quantity") AS "store_sales_quantitycov",
+ COUNT("store_returns"."sr_return_quantity") AS "store_returns_quantitycount",
+ AVG("store_returns"."sr_return_quantity") AS "store_returns_quantityave",
+ STDDEV_SAMP("store_returns"."sr_return_quantity") AS "store_returns_quantitystdev",
+ STDDEV_SAMP("store_returns"."sr_return_quantity") / AVG("store_returns"."sr_return_quantity") AS "store_returns_quantitycov",
+ COUNT("catalog_sales"."cs_quantity") AS "catalog_sales_quantitycount",
+ AVG("catalog_sales"."cs_quantity") AS "catalog_sales_quantityave",
+ STDDEV_SAMP("catalog_sales"."cs_quantity") / AVG("catalog_sales"."cs_quantity") AS "catalog_sales_quantitystdev",
+ STDDEV_SAMP("catalog_sales"."cs_quantity") / AVG("catalog_sales"."cs_quantity") AS "catalog_sales_quantitycov"
+FROM "store_sales" AS "store_sales"
+CROSS JOIN "d3" AS "d3"
+JOIN "catalog_sales" AS "catalog_sales"
+ ON "catalog_sales"."cs_sold_date_sk" = "d3"."d_date_sk"
+JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_customer_sk" = "catalog_sales"."cs_bill_customer_sk"
+ AND "store_returns"."sr_item_sk" = "catalog_sales"."cs_item_sk"
+ AND "store_sales"."ss_customer_sk" = "store_returns"."sr_customer_sk"
+ AND "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ AND "date_dim"."d_quarter_name" = '1999Q1'
+JOIN "d3" AS "d2"
+ ON "store_returns"."sr_returned_date_sk" = "d2"."d_date_sk"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "store_sales"."ss_item_sk"
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "store"."s_state"
+ORDER BY
+ "i_item_id",
+ "i_item_desc",
+ "s_state"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 18
+--------------------------------------
+SELECT i_item_id,
+ ca_country,
+ ca_state,
+ ca_county,
+ Avg(Cast(cs_quantity AS NUMERIC(12, 2))) agg1,
+ Avg(Cast(cs_list_price AS NUMERIC(12, 2))) agg2,
+ Avg(Cast(cs_coupon_amt AS NUMERIC(12, 2))) agg3,
+ Avg(Cast(cs_sales_price AS NUMERIC(12, 2))) agg4,
+ Avg(Cast(cs_net_profit AS NUMERIC(12, 2))) agg5,
+ Avg(Cast(c_birth_year AS NUMERIC(12, 2))) agg6,
+ Avg(Cast(cd1.cd_dep_count AS NUMERIC(12, 2))) agg7
+FROM catalog_sales,
+ customer_demographics cd1,
+ customer_demographics cd2,
+ customer,
+ customer_address,
+ date_dim,
+ item
+WHERE cs_sold_date_sk = d_date_sk
+ AND cs_item_sk = i_item_sk
+ AND cs_bill_cdemo_sk = cd1.cd_demo_sk
+ AND cs_bill_customer_sk = c_customer_sk
+ AND cd1.cd_gender = 'F'
+ AND cd1.cd_education_status = 'Secondary'
+ AND c_current_cdemo_sk = cd2.cd_demo_sk
+ AND c_current_addr_sk = ca_address_sk
+ AND c_birth_month IN ( 8, 4, 2, 5,
+ 11, 9 )
+ AND d_year = 2001
+ AND ca_state IN ( 'KS', 'IA', 'AL', 'UT',
+ 'VA', 'NC', 'TX' )
+GROUP BY rollup ( i_item_id, ca_country, ca_state, ca_county )
+ORDER BY ca_country,
+ ca_state,
+ ca_county,
+ i_item_id
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "customer_address"."ca_country" AS "ca_country",
+ "customer_address"."ca_state" AS "ca_state",
+ "customer_address"."ca_county" AS "ca_county",
+ AVG(CAST("catalog_sales"."cs_quantity" AS DECIMAL(12, 2))) AS "agg1",
+ AVG(CAST("catalog_sales"."cs_list_price" AS DECIMAL(12, 2))) AS "agg2",
+ AVG(CAST("catalog_sales"."cs_coupon_amt" AS DECIMAL(12, 2))) AS "agg3",
+ AVG(CAST("catalog_sales"."cs_sales_price" AS DECIMAL(12, 2))) AS "agg4",
+ AVG(CAST("catalog_sales"."cs_net_profit" AS DECIMAL(12, 2))) AS "agg5",
+ AVG(CAST("customer"."c_birth_year" AS DECIMAL(12, 2))) AS "agg6",
+ AVG(CAST("customer_demographics"."cd_dep_count" AS DECIMAL(12, 2))) AS "agg7"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "catalog_sales"."cs_bill_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+ AND "customer_demographics"."cd_education_status" = 'Secondary'
+ AND "customer_demographics"."cd_gender" = 'F'
+JOIN "customer" AS "customer"
+ ON "catalog_sales"."cs_bill_customer_sk" = "customer"."c_customer_sk"
+ AND "customer"."c_birth_month" IN (8, 4, 2, 5, 11, 9)
+JOIN "customer_demographics" AS "customer_demographics_2"
+ ON "customer"."c_current_cdemo_sk" = "customer_demographics_2"."cd_demo_sk"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+ AND "customer_address"."ca_state" IN ('KS', 'IA', 'AL', 'UT', 'VA', 'NC', 'TX')
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_year" = 2001
+JOIN "item" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+GROUP BY
+ROLLUP (
+ "item"."i_item_id",
+ "customer_address"."ca_country",
+ "customer_address"."ca_state",
+ "customer_address"."ca_county"
+)
+ORDER BY
+ "ca_country",
+ "ca_state",
+ "ca_county",
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 20
+--------------------------------------
+SELECT
+ i_item_id ,
+ i_item_desc ,
+ i_category ,
+ i_class ,
+ i_current_price ,
+ Sum(cs_ext_sales_price) AS itemrevenue ,
+ Sum(cs_ext_sales_price)*100/Sum(Sum(cs_ext_sales_price)) OVER (partition BY i_class) AS revenueratio
+FROM catalog_sales ,
+ item ,
+ date_dim
+WHERE cs_item_sk = i_item_sk
+AND i_category IN ('Children',
+ 'Women',
+ 'Electronics')
+AND cs_sold_date_sk = d_date_sk
+AND d_date BETWEEN Cast('2001-02-03' AS DATE) AND (
+ Cast('2001-02-03' AS DATE) + INTERVAL '30' day)
+GROUP BY i_item_id ,
+ i_item_desc ,
+ i_category ,
+ i_class ,
+ i_current_price
+ORDER BY i_category ,
+ i_class ,
+ i_item_id ,
+ i_item_desc ,
+ revenueratio
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ "item"."i_current_price" AS "i_current_price",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "itemrevenue",
+ SUM("catalog_sales"."cs_ext_sales_price") * 100 / SUM(SUM("catalog_sales"."cs_ext_sales_price")) OVER (PARTITION BY "item"."i_class") AS "revenueratio"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "item" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ AND "item"."i_category" IN ('Children', 'Women', 'Electronics')
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2001-03-05' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2001-02-03' AS DATE)
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "item"."i_category",
+ "item"."i_class",
+ "item"."i_current_price"
+ORDER BY
+ "i_category",
+ "i_class",
+ "i_item_id",
+ "i_item_desc",
+ "revenueratio"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 21
+--------------------------------------
+SELECT
+ *
+FROM (
+ SELECT w_warehouse_name ,
+ i_item_id ,
+ Sum(
+ CASE
+ WHEN (
+ Cast(d_date AS DATE) < Cast ('2000-05-13' AS DATE)) THEN inv_quantity_on_hand
+ ELSE 0
+ END) AS inv_before ,
+ Sum(
+ CASE
+ WHEN (
+ Cast(d_date AS DATE) >= Cast ('2000-05-13' AS DATE)) THEN inv_quantity_on_hand
+ ELSE 0
+ END) AS inv_after
+ FROM inventory ,
+ warehouse ,
+ item ,
+ date_dim
+ WHERE i_current_price BETWEEN 0.99 AND 1.49
+ AND i_item_sk = inv_item_sk
+ AND inv_warehouse_sk = w_warehouse_sk
+ AND inv_date_sk = d_date_sk
+ AND d_date BETWEEN (Cast ('2000-05-13' AS DATE) - INTERVAL '30' day) AND (
+ cast ('2000-05-13' AS date) + INTERVAL '30' day)
+ GROUP BY w_warehouse_name,
+ i_item_id) x
+WHERE (
+ CASE
+ WHEN inv_before > 0 THEN inv_after / inv_before
+ ELSE NULL
+ END) BETWEEN 2.0/3.0 AND 3.0/2.0
+ORDER BY w_warehouse_name ,
+ i_item_id
+LIMIT 100;
+WITH "x" AS (
+ SELECT
+ "warehouse"."w_warehouse_name" AS "w_warehouse_name",
+ "item"."i_item_id" AS "i_item_id",
+ SUM(
+ CASE
+ WHEN CAST("date_dim"."d_date" AS DATE) < CAST('2000-05-13' AS DATE)
+ THEN "inventory"."inv_quantity_on_hand"
+ ELSE 0
+ END
+ ) AS "inv_before",
+ SUM(
+ CASE
+ WHEN CAST("date_dim"."d_date" AS DATE) >= CAST('2000-05-13' AS DATE)
+ THEN "inventory"."inv_quantity_on_hand"
+ ELSE 0
+ END
+ ) AS "inv_after"
+ FROM "inventory" AS "inventory"
+ JOIN "warehouse" AS "warehouse"
+ ON "inventory"."inv_warehouse_sk" = "warehouse"."w_warehouse_sk"
+ JOIN "item" AS "item"
+ ON "item"."i_current_price" <= 1.49
+ AND "item"."i_current_price" >= 0.99
+ AND "item"."i_item_sk" = "inventory"."inv_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "inventory"."inv_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2000-06-12' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2000-04-13' AS DATE)
+ GROUP BY
+ "warehouse"."w_warehouse_name",
+ "item"."i_item_id"
+)
+SELECT
+ "x"."w_warehouse_name" AS "w_warehouse_name",
+ "x"."i_item_id" AS "i_item_id",
+ "x"."inv_before" AS "inv_before",
+ "x"."inv_after" AS "inv_after"
+FROM "x" AS "x"
+WHERE
+ CASE WHEN "x"."inv_before" > 0 THEN "x"."inv_after" / "x"."inv_before" ELSE NULL END <= 1.5
+ AND CASE WHEN "x"."inv_before" > 0 THEN "x"."inv_after" / "x"."inv_before" ELSE NULL END >= 0.6666666666666666666666666667
+ORDER BY
+ "x"."w_warehouse_name",
+ "x"."i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 22
+--------------------------------------
+SELECT i_product_name,
+ i_brand,
+ i_class,
+ i_category,
+ Avg(inv_quantity_on_hand) qoh
+FROM inventory,
+ date_dim,
+ item,
+ warehouse
+WHERE inv_date_sk = d_date_sk
+ AND inv_item_sk = i_item_sk
+ AND inv_warehouse_sk = w_warehouse_sk
+ AND d_month_seq BETWEEN 1205 AND 1205 + 11
+GROUP BY rollup( i_product_name, i_brand, i_class, i_category )
+ORDER BY qoh,
+ i_product_name,
+ i_brand,
+ i_class,
+ i_category
+LIMIT 100;
+SELECT
+ "item"."i_product_name" AS "i_product_name",
+ "item"."i_brand" AS "i_brand",
+ "item"."i_class" AS "i_class",
+ "item"."i_category" AS "i_category",
+ AVG("inventory"."inv_quantity_on_hand") AS "qoh"
+FROM "inventory" AS "inventory"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" <= 1216
+ AND "date_dim"."d_month_seq" >= 1205
+ AND "inventory"."inv_date_sk" = "date_dim"."d_date_sk"
+JOIN "item" AS "item"
+ ON "inventory"."inv_item_sk" = "item"."i_item_sk"
+JOIN "warehouse" AS "warehouse"
+ ON "inventory"."inv_warehouse_sk" = "warehouse"."w_warehouse_sk"
+GROUP BY
+ROLLUP (
+ "item"."i_product_name",
+ "item"."i_brand",
+ "item"."i_class",
+ "item"."i_category"
+)
+ORDER BY
+ "qoh",
+ "i_product_name",
+ "i_brand",
+ "i_class",
+ "i_category"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 23
+--------------------------------------
+WITH frequent_ss_items
+ AS (SELECT Substr(i_item_desc, 1, 30) itemdesc,
+ i_item_sk item_sk,
+ d_date solddate,
+ Count(*) cnt
+ FROM store_sales,
+ date_dim,
+ item
+ WHERE ss_sold_date_sk = d_date_sk
+ AND ss_item_sk = i_item_sk
+ AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 )
+ GROUP BY Substr(i_item_desc, 1, 30),
+ i_item_sk,
+ d_date
+ HAVING Count(*) > 4),
+ max_store_sales
+ AS (SELECT Max(csales) tpcds_cmax
+ FROM (SELECT c_customer_sk,
+ Sum(ss_quantity * ss_sales_price) csales
+ FROM store_sales,
+ customer,
+ date_dim
+ WHERE ss_customer_sk = c_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 )
+ GROUP BY c_customer_sk)),
+ best_ss_customer
+ AS (SELECT c_customer_sk,
+ Sum(ss_quantity * ss_sales_price) ssales
+ FROM store_sales,
+ customer
+ WHERE ss_customer_sk = c_customer_sk
+ GROUP BY c_customer_sk
+ HAVING Sum(ss_quantity * ss_sales_price) >
+ ( 95 / 100.0 ) * (SELECT *
+ FROM max_store_sales))
+SELECT Sum(sales)
+FROM (SELECT cs_quantity * cs_list_price sales
+ FROM catalog_sales,
+ date_dim
+ WHERE d_year = 1998
+ AND d_moy = 6
+ AND cs_sold_date_sk = d_date_sk
+ AND cs_item_sk IN (SELECT item_sk
+ FROM frequent_ss_items)
+ AND cs_bill_customer_sk IN (SELECT c_customer_sk
+ FROM best_ss_customer)
+ UNION ALL
+ SELECT ws_quantity * ws_list_price sales
+ FROM web_sales,
+ date_dim
+ WHERE d_year = 1998
+ AND d_moy = 6
+ AND ws_sold_date_sk = d_date_sk
+ AND ws_item_sk IN (SELECT item_sk
+ FROM frequent_ss_items)
+ AND ws_bill_customer_sk IN (SELECT c_customer_sk
+ FROM best_ss_customer)) LIMIT 100;
+WITH "frequent_ss_items" AS (
+ SELECT
+ "item"."i_item_sk" AS "item_sk"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" IN (1998, 1999, 2000, 2001)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ GROUP BY
+ SUBSTR("item"."i_item_desc", 1, 30),
+ "item"."i_item_sk",
+ "date_dim"."d_date"
+ HAVING
+ COUNT(*) > 4
+), "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk"
+ FROM "customer" AS "customer"
+), "_q_0" AS (
+ SELECT
+ SUM("store_sales"."ss_quantity" * "store_sales"."ss_sales_price") AS "csales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "customer_2" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" IN (1998, 1999, 2000, 2001)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_sk"
+), "max_store_sales" AS (
+ SELECT
+ MAX("_q_0"."csales") AS "tpcds_cmax"
+ FROM "_q_0" AS "_q_0"
+), "best_ss_customer" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk"
+ FROM "store_sales" AS "store_sales"
+ CROSS JOIN "max_store_sales"
+ JOIN "customer_2" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ GROUP BY
+ "customer"."c_customer_sk"
+ HAVING
+ SUM("store_sales"."ss_quantity" * "store_sales"."ss_sales_price") > 0.95 * MAX("max_store_sales"."tpcds_cmax")
+), "_u_1" AS (
+ SELECT
+ "frequent_ss_items"."item_sk" AS "item_sk"
+ FROM "frequent_ss_items"
+ GROUP BY
+ "frequent_ss_items"."item_sk"
+), "_u_2" AS (
+ SELECT
+ "best_ss_customer"."c_customer_sk" AS "c_customer_sk"
+ FROM "best_ss_customer"
+ GROUP BY
+ "best_ss_customer"."c_customer_sk"
+), "date_dim_4" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 6 AND "date_dim"."d_year" = 1998
+), "_q_1" AS (
+ SELECT
+ "catalog_sales"."cs_quantity" * "catalog_sales"."cs_list_price" AS "sales"
+ FROM "catalog_sales" AS "catalog_sales"
+ LEFT JOIN "_u_1" AS "_u_1"
+ ON "catalog_sales"."cs_item_sk" = "_u_1"."item_sk"
+ LEFT JOIN "_u_2" AS "_u_2"
+ ON "catalog_sales"."cs_bill_customer_sk" = "_u_2"."c_customer_sk"
+ JOIN "date_dim_4" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "_u_1"."item_sk" IS NULL AND NOT "_u_2"."c_customer_sk" IS NULL
+ UNION ALL
+ SELECT
+ "web_sales"."ws_quantity" * "web_sales"."ws_list_price" AS "sales"
+ FROM "web_sales" AS "web_sales"
+ LEFT JOIN "_u_1" AS "_u_3"
+ ON "web_sales"."ws_item_sk" = "_u_3"."item_sk"
+ LEFT JOIN "_u_2" AS "_u_4"
+ ON "web_sales"."ws_bill_customer_sk" = "_u_4"."c_customer_sk"
+ JOIN "date_dim_4" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "_u_3"."item_sk" IS NULL AND NOT "_u_4"."c_customer_sk" IS NULL
+)
+SELECT
+ SUM("_q_1"."sales") AS "_col_0"
+FROM "_q_1" AS "_q_1"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 24
+--------------------------------------
+WITH ssales
+ AS (SELECT c_last_name,
+ c_first_name,
+ s_store_name,
+ ca_state,
+ s_state,
+ i_color,
+ i_current_price,
+ i_manager_id,
+ i_units,
+ i_size,
+ Sum(ss_net_profit) netpaid
+ FROM store_sales,
+ store_returns,
+ store,
+ item,
+ customer,
+ customer_address
+ WHERE ss_ticket_number = sr_ticket_number
+ AND ss_item_sk = sr_item_sk
+ AND ss_customer_sk = c_customer_sk
+ AND ss_item_sk = i_item_sk
+ AND ss_store_sk = s_store_sk
+ AND c_birth_country = Upper(ca_country)
+ AND s_zip = ca_zip
+ AND s_market_id = 6
+ GROUP BY c_last_name,
+ c_first_name,
+ s_store_name,
+ ca_state,
+ s_state,
+ i_color,
+ i_current_price,
+ i_manager_id,
+ i_units,
+ i_size)
+SELECT c_last_name,
+ c_first_name,
+ s_store_name,
+ Sum(netpaid) paid
+FROM ssales
+WHERE i_color = 'papaya'
+GROUP BY c_last_name,
+ c_first_name,
+ s_store_name
+HAVING Sum(netpaid) > (SELECT 0.05 * Avg(netpaid)
+ FROM ssales);
+WITH "ssales" AS (
+ SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "store"."s_store_name" AS "s_store_name",
+ "item"."i_color" AS "i_color",
+ SUM("store_sales"."ss_net_profit") AS "netpaid"
+ FROM "store_sales" AS "store_sales"
+ JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+ JOIN "store" AS "store"
+ ON "store"."s_market_id" = 6 AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "customer" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_birth_country" = UPPER("customer_address"."ca_country")
+ AND "store"."s_zip" = "customer_address"."ca_zip"
+ GROUP BY
+ "customer"."c_last_name",
+ "customer"."c_first_name",
+ "store"."s_store_name",
+ "customer_address"."ca_state",
+ "store"."s_state",
+ "item"."i_color",
+ "item"."i_current_price",
+ "item"."i_manager_id",
+ "item"."i_units",
+ "item"."i_size"
+), "_u_0" AS (
+ SELECT
+ 0.05 * AVG("ssales"."netpaid") AS "_col_0"
+ FROM "ssales"
+)
+SELECT
+ "ssales"."c_last_name" AS "c_last_name",
+ "ssales"."c_first_name" AS "c_first_name",
+ "ssales"."s_store_name" AS "s_store_name",
+ SUM("ssales"."netpaid") AS "paid"
+FROM "ssales"
+CROSS JOIN "_u_0" AS "_u_0"
+WHERE
+ "ssales"."i_color" = 'papaya'
+GROUP BY
+ "ssales"."c_last_name",
+ "ssales"."c_first_name",
+ "ssales"."s_store_name"
+HAVING
+ SUM("ssales"."netpaid") > MAX("_u_0"."_col_0");
+
+--------------------------------------
+-- TPC-DS 25
+--------------------------------------
+SELECT i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name,
+ Max(ss_net_profit) AS store_sales_profit,
+ Max(sr_net_loss) AS store_returns_loss,
+ Max(cs_net_profit) AS catalog_sales_profit
+FROM store_sales,
+ store_returns,
+ catalog_sales,
+ date_dim d1,
+ date_dim d2,
+ date_dim d3,
+ store,
+ item
+WHERE d1.d_moy = 4
+ AND d1.d_year = 2001
+ AND d1.d_date_sk = ss_sold_date_sk
+ AND i_item_sk = ss_item_sk
+ AND s_store_sk = ss_store_sk
+ AND ss_customer_sk = sr_customer_sk
+ AND ss_item_sk = sr_item_sk
+ AND ss_ticket_number = sr_ticket_number
+ AND sr_returned_date_sk = d2.d_date_sk
+ AND d2.d_moy BETWEEN 4 AND 10
+ AND d2.d_year = 2001
+ AND sr_customer_sk = cs_bill_customer_sk
+ AND sr_item_sk = cs_item_sk
+ AND cs_sold_date_sk = d3.d_date_sk
+ AND d3.d_moy BETWEEN 4 AND 10
+ AND d3.d_year = 2001
+GROUP BY i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name
+ORDER BY i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name
+LIMIT 100;
+WITH "d3" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" <= 10 AND "date_dim"."d_moy" >= 4 AND "date_dim"."d_year" = 2001
+)
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "store"."s_store_id" AS "s_store_id",
+ "store"."s_store_name" AS "s_store_name",
+ MAX("store_sales"."ss_net_profit") AS "store_sales_profit",
+ MAX("store_returns"."sr_net_loss") AS "store_returns_loss",
+ MAX("catalog_sales"."cs_net_profit") AS "catalog_sales_profit"
+FROM "store_sales" AS "store_sales"
+CROSS JOIN "d3" AS "d3"
+JOIN "catalog_sales" AS "catalog_sales"
+ ON "catalog_sales"."cs_sold_date_sk" = "d3"."d_date_sk"
+JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_customer_sk" = "catalog_sales"."cs_bill_customer_sk"
+ AND "store_returns"."sr_item_sk" = "catalog_sales"."cs_item_sk"
+ AND "store_sales"."ss_customer_sk" = "store_returns"."sr_customer_sk"
+ AND "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ AND "date_dim"."d_moy" = 4
+ AND "date_dim"."d_year" = 2001
+JOIN "d3" AS "d2"
+ ON "store_returns"."sr_returned_date_sk" = "d2"."d_date_sk"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "store_sales"."ss_item_sk"
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "store"."s_store_id",
+ "store"."s_store_name"
+ORDER BY
+ "i_item_id",
+ "i_item_desc",
+ "s_store_id",
+ "s_store_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 26
+--------------------------------------
+SELECT i_item_id,
+ Avg(cs_quantity) agg1,
+ Avg(cs_list_price) agg2,
+ Avg(cs_coupon_amt) agg3,
+ Avg(cs_sales_price) agg4
+FROM catalog_sales,
+ customer_demographics,
+ date_dim,
+ item,
+ promotion
+WHERE cs_sold_date_sk = d_date_sk
+ AND cs_item_sk = i_item_sk
+ AND cs_bill_cdemo_sk = cd_demo_sk
+ AND cs_promo_sk = p_promo_sk
+ AND cd_gender = 'F'
+ AND cd_marital_status = 'W'
+ AND cd_education_status = 'Secondary'
+ AND ( p_channel_email = 'N'
+ OR p_channel_event = 'N' )
+ AND d_year = 2000
+GROUP BY i_item_id
+ORDER BY i_item_id
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ AVG("catalog_sales"."cs_quantity") AS "agg1",
+ AVG("catalog_sales"."cs_list_price") AS "agg2",
+ AVG("catalog_sales"."cs_coupon_amt") AS "agg3",
+ AVG("catalog_sales"."cs_sales_price") AS "agg4"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "catalog_sales"."cs_bill_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+ AND "customer_demographics"."cd_education_status" = 'Secondary'
+ AND "customer_demographics"."cd_gender" = 'F'
+ AND "customer_demographics"."cd_marital_status" = 'W'
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_year" = 2000
+JOIN "item" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+JOIN "promotion" AS "promotion"
+ ON "catalog_sales"."cs_promo_sk" = "promotion"."p_promo_sk"
+ AND (
+ "promotion"."p_channel_email" = 'N' OR "promotion"."p_channel_event" = 'N'
+ )
+GROUP BY
+ "item"."i_item_id"
+ORDER BY
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 27
+--------------------------------------
+SELECT i_item_id,
+ s_state,
+ Grouping(s_state) g_state,
+ Avg(ss_quantity) agg1,
+ Avg(ss_list_price) agg2,
+ Avg(ss_coupon_amt) agg3,
+ Avg(ss_sales_price) agg4
+FROM store_sales,
+ customer_demographics,
+ date_dim,
+ store,
+ item
+WHERE ss_sold_date_sk = d_date_sk
+ AND ss_item_sk = i_item_sk
+ AND ss_store_sk = s_store_sk
+ AND ss_cdemo_sk = cd_demo_sk
+ AND cd_gender = 'M'
+ AND cd_marital_status = 'D'
+ AND cd_education_status = 'College'
+ AND d_year = 2000
+ AND s_state IN ( 'TN', 'TN', 'TN', 'TN',
+ 'TN', 'TN' )
+GROUP BY rollup ( i_item_id, s_state )
+ORDER BY i_item_id,
+ s_state
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "store"."s_state" AS "s_state",
+ GROUPING("store"."s_state") AS "g_state",
+ AVG("store_sales"."ss_quantity") AS "agg1",
+ AVG("store_sales"."ss_list_price") AS "agg2",
+ AVG("store_sales"."ss_coupon_amt") AS "agg3",
+ AVG("store_sales"."ss_sales_price") AS "agg4"
+FROM "store_sales" AS "store_sales"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_education_status" = 'College'
+ AND "customer_demographics"."cd_gender" = 'M'
+ AND "customer_demographics"."cd_marital_status" = 'D'
+ AND "store_sales"."ss_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2000
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "store" AS "store"
+ ON "store"."s_state" IN ('TN', 'TN', 'TN', 'TN', 'TN', 'TN')
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+GROUP BY
+ROLLUP (
+ "item"."i_item_id",
+ "store"."s_state"
+)
+ORDER BY
+ "i_item_id",
+ "s_state"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 28
+--------------------------------------
+SELECT *
+FROM (SELECT Avg(ss_list_price) B1_LP,
+ Count(ss_list_price) B1_CNT,
+ Count(DISTINCT ss_list_price) B1_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 0 AND 5
+ AND ( ss_list_price BETWEEN 18 AND 18 + 10
+ OR ss_coupon_amt BETWEEN 1939 AND 1939 + 1000
+ OR ss_wholesale_cost BETWEEN 34 AND 34 + 20 )) B1,
+ (SELECT Avg(ss_list_price) B2_LP,
+ Count(ss_list_price) B2_CNT,
+ Count(DISTINCT ss_list_price) B2_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 6 AND 10
+ AND ( ss_list_price BETWEEN 1 AND 1 + 10
+ OR ss_coupon_amt BETWEEN 35 AND 35 + 1000
+ OR ss_wholesale_cost BETWEEN 50 AND 50 + 20 )) B2,
+ (SELECT Avg(ss_list_price) B3_LP,
+ Count(ss_list_price) B3_CNT,
+ Count(DISTINCT ss_list_price) B3_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 11 AND 15
+ AND ( ss_list_price BETWEEN 91 AND 91 + 10
+ OR ss_coupon_amt BETWEEN 1412 AND 1412 + 1000
+ OR ss_wholesale_cost BETWEEN 17 AND 17 + 20 )) B3,
+ (SELECT Avg(ss_list_price) B4_LP,
+ Count(ss_list_price) B4_CNT,
+ Count(DISTINCT ss_list_price) B4_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 16 AND 20
+ AND ( ss_list_price BETWEEN 9 AND 9 + 10
+ OR ss_coupon_amt BETWEEN 5270 AND 5270 + 1000
+ OR ss_wholesale_cost BETWEEN 29 AND 29 + 20 )) B4,
+ (SELECT Avg(ss_list_price) B5_LP,
+ Count(ss_list_price) B5_CNT,
+ Count(DISTINCT ss_list_price) B5_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 21 AND 25
+ AND ( ss_list_price BETWEEN 45 AND 45 + 10
+ OR ss_coupon_amt BETWEEN 826 AND 826 + 1000
+ OR ss_wholesale_cost BETWEEN 5 AND 5 + 20 )) B5,
+ (SELECT Avg(ss_list_price) B6_LP,
+ Count(ss_list_price) B6_CNT,
+ Count(DISTINCT ss_list_price) B6_CNTD
+ FROM store_sales
+ WHERE ss_quantity BETWEEN 26 AND 30
+ AND ( ss_list_price BETWEEN 174 AND 174 + 10
+ OR ss_coupon_amt BETWEEN 5548 AND 5548 + 1000
+ OR ss_wholesale_cost BETWEEN 42 AND 42 + 20 )) B6
+LIMIT 100;
+WITH "b1" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b1_lp",
+ COUNT("store_sales"."ss_list_price") AS "b1_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b1_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 2939 AND "store_sales"."ss_coupon_amt" >= 1939
+ OR "store_sales"."ss_list_price" <= 28 AND "store_sales"."ss_list_price" >= 18
+ OR "store_sales"."ss_wholesale_cost" <= 54 AND "store_sales"."ss_wholesale_cost" >= 34
+ )
+ AND "store_sales"."ss_quantity" <= 5
+ AND "store_sales"."ss_quantity" >= 0
+), "b2" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b2_lp",
+ COUNT("store_sales"."ss_list_price") AS "b2_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b2_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 1035 AND "store_sales"."ss_coupon_amt" >= 35
+ OR "store_sales"."ss_list_price" <= 11 AND "store_sales"."ss_list_price" >= 1
+ OR "store_sales"."ss_wholesale_cost" <= 70 AND "store_sales"."ss_wholesale_cost" >= 50
+ )
+ AND "store_sales"."ss_quantity" <= 10
+ AND "store_sales"."ss_quantity" >= 6
+), "b3" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b3_lp",
+ COUNT("store_sales"."ss_list_price") AS "b3_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b3_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 2412 AND "store_sales"."ss_coupon_amt" >= 1412
+ OR "store_sales"."ss_list_price" <= 101 AND "store_sales"."ss_list_price" >= 91
+ OR "store_sales"."ss_wholesale_cost" <= 37 AND "store_sales"."ss_wholesale_cost" >= 17
+ )
+ AND "store_sales"."ss_quantity" <= 15
+ AND "store_sales"."ss_quantity" >= 11
+), "b4" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b4_lp",
+ COUNT("store_sales"."ss_list_price") AS "b4_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b4_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 6270 AND "store_sales"."ss_coupon_amt" >= 5270
+ OR "store_sales"."ss_list_price" <= 19 AND "store_sales"."ss_list_price" >= 9
+ OR "store_sales"."ss_wholesale_cost" <= 49 AND "store_sales"."ss_wholesale_cost" >= 29
+ )
+ AND "store_sales"."ss_quantity" <= 20
+ AND "store_sales"."ss_quantity" >= 16
+), "b5" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b5_lp",
+ COUNT("store_sales"."ss_list_price") AS "b5_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b5_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 1826 AND "store_sales"."ss_coupon_amt" >= 826
+ OR "store_sales"."ss_list_price" <= 55 AND "store_sales"."ss_list_price" >= 45
+ OR "store_sales"."ss_wholesale_cost" <= 25 AND "store_sales"."ss_wholesale_cost" >= 5
+ )
+ AND "store_sales"."ss_quantity" <= 25
+ AND "store_sales"."ss_quantity" >= 21
+), "b6" AS (
+ SELECT
+ AVG("store_sales"."ss_list_price") AS "b6_lp",
+ COUNT("store_sales"."ss_list_price") AS "b6_cnt",
+ COUNT(DISTINCT "store_sales"."ss_list_price") AS "b6_cntd"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ (
+ "store_sales"."ss_coupon_amt" <= 6548 AND "store_sales"."ss_coupon_amt" >= 5548
+ OR "store_sales"."ss_list_price" <= 184 AND "store_sales"."ss_list_price" >= 174
+ OR "store_sales"."ss_wholesale_cost" <= 62 AND "store_sales"."ss_wholesale_cost" >= 42
+ )
+ AND "store_sales"."ss_quantity" <= 30
+ AND "store_sales"."ss_quantity" >= 26
+)
+SELECT
+ "b1"."b1_lp" AS "b1_lp",
+ "b1"."b1_cnt" AS "b1_cnt",
+ "b1"."b1_cntd" AS "b1_cntd",
+ "b2"."b2_lp" AS "b2_lp",
+ "b2"."b2_cnt" AS "b2_cnt",
+ "b2"."b2_cntd" AS "b2_cntd",
+ "b3"."b3_lp" AS "b3_lp",
+ "b3"."b3_cnt" AS "b3_cnt",
+ "b3"."b3_cntd" AS "b3_cntd",
+ "b4"."b4_lp" AS "b4_lp",
+ "b4"."b4_cnt" AS "b4_cnt",
+ "b4"."b4_cntd" AS "b4_cntd",
+ "b5"."b5_lp" AS "b5_lp",
+ "b5"."b5_cnt" AS "b5_cnt",
+ "b5"."b5_cntd" AS "b5_cntd",
+ "b6"."b6_lp" AS "b6_lp",
+ "b6"."b6_cnt" AS "b6_cnt",
+ "b6"."b6_cntd" AS "b6_cntd"
+FROM "b1" AS "b1"
+CROSS JOIN "b2" AS "b2"
+CROSS JOIN "b3" AS "b3"
+CROSS JOIN "b4" AS "b4"
+CROSS JOIN "b5" AS "b5"
+CROSS JOIN "b6" AS "b6"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 29
+--------------------------------------
+SELECT i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name,
+ Avg(ss_quantity) AS store_sales_quantity,
+ Avg(sr_return_quantity) AS store_returns_quantity,
+ Avg(cs_quantity) AS catalog_sales_quantity
+FROM store_sales,
+ store_returns,
+ catalog_sales,
+ date_dim d1,
+ date_dim d2,
+ date_dim d3,
+ store,
+ item
+WHERE d1.d_moy = 4
+ AND d1.d_year = 1998
+ AND d1.d_date_sk = ss_sold_date_sk
+ AND i_item_sk = ss_item_sk
+ AND s_store_sk = ss_store_sk
+ AND ss_customer_sk = sr_customer_sk
+ AND ss_item_sk = sr_item_sk
+ AND ss_ticket_number = sr_ticket_number
+ AND sr_returned_date_sk = d2.d_date_sk
+ AND d2.d_moy BETWEEN 4 AND 4 + 3
+ AND d2.d_year = 1998
+ AND sr_customer_sk = cs_bill_customer_sk
+ AND sr_item_sk = cs_item_sk
+ AND cs_sold_date_sk = d3.d_date_sk
+ AND d3.d_year IN ( 1998, 1998 + 1, 1998 + 2 )
+GROUP BY i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name
+ORDER BY i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "store"."s_store_id" AS "s_store_id",
+ "store"."s_store_name" AS "s_store_name",
+ AVG("store_sales"."ss_quantity") AS "store_sales_quantity",
+ AVG("store_returns"."sr_return_quantity") AS "store_returns_quantity",
+ AVG("catalog_sales"."cs_quantity") AS "catalog_sales_quantity"
+FROM "store_sales" AS "store_sales"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" IN (1998, 1999, 2000)
+JOIN "catalog_sales" AS "catalog_sales"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_customer_sk" = "catalog_sales"."cs_bill_customer_sk"
+ AND "store_returns"."sr_item_sk" = "catalog_sales"."cs_item_sk"
+ AND "store_sales"."ss_customer_sk" = "store_returns"."sr_customer_sk"
+ AND "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+JOIN "date_dim" AS "date_dim_2"
+ ON "date_dim_2"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ AND "date_dim_2"."d_moy" = 4
+ AND "date_dim_2"."d_year" = 1998
+JOIN "date_dim" AS "date_dim_3"
+ ON "date_dim_3"."d_moy" <= 7
+ AND "date_dim_3"."d_moy" >= 4
+ AND "date_dim_3"."d_year" = 1998
+ AND "store_returns"."sr_returned_date_sk" = "date_dim_3"."d_date_sk"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "store_sales"."ss_item_sk"
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "store"."s_store_id",
+ "store"."s_store_name"
+ORDER BY
+ "i_item_id",
+ "i_item_desc",
+ "s_store_id",
+ "s_store_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 30
+--------------------------------------
+WITH customer_total_return
+ AS (SELECT wr_returning_customer_sk AS ctr_customer_sk,
+ ca_state AS ctr_state,
+ Sum(wr_return_amt) AS ctr_total_return
+ FROM web_returns,
+ date_dim,
+ customer_address
+ WHERE wr_returned_date_sk = d_date_sk
+ AND d_year = 2000
+ AND wr_returning_addr_sk = ca_address_sk
+ GROUP BY wr_returning_customer_sk,
+ ca_state)
+SELECT c_customer_id,
+ c_salutation,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_day,
+ c_birth_month,
+ c_birth_year,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ c_last_review_date,
+ ctr_total_return
+FROM customer_total_return ctr1,
+ customer_address,
+ customer
+WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2
+ FROM customer_total_return ctr2
+ WHERE ctr1.ctr_state = ctr2.ctr_state)
+ AND ca_address_sk = c_current_addr_sk
+ AND ca_state = 'IN'
+ AND ctr1.ctr_customer_sk = c_customer_sk
+ORDER BY c_customer_id,
+ c_salutation,
+ c_first_name,
+ c_last_name,
+ c_preferred_cust_flag,
+ c_birth_day,
+ c_birth_month,
+ c_birth_year,
+ c_birth_country,
+ c_login,
+ c_email_address,
+ c_last_review_date,
+ ctr_total_return
+LIMIT 100;
+WITH "customer_total_return" AS (
+ SELECT
+ "web_returns"."wr_returning_customer_sk" AS "ctr_customer_sk",
+ "customer_address"."ca_state" AS "ctr_state",
+ SUM("web_returns"."wr_return_amt") AS "ctr_total_return"
+ FROM "web_returns" AS "web_returns"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2000
+ AND "web_returns"."wr_returned_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address" AS "customer_address"
+ ON "web_returns"."wr_returning_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "web_returns"."wr_returning_customer_sk",
+ "customer_address"."ca_state"
+), "_u_0" AS (
+ SELECT
+ AVG("ctr2"."ctr_total_return") * 1.2 AS "_col_0",
+ "ctr2"."ctr_state" AS "_u_1"
+ FROM "customer_total_return" AS "ctr2"
+ GROUP BY
+ "ctr2"."ctr_state"
+)
+SELECT
+ "customer"."c_customer_id" AS "c_customer_id",
+ "customer"."c_salutation" AS "c_salutation",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_preferred_cust_flag" AS "c_preferred_cust_flag",
+ "customer"."c_birth_day" AS "c_birth_day",
+ "customer"."c_birth_month" AS "c_birth_month",
+ "customer"."c_birth_year" AS "c_birth_year",
+ "customer"."c_birth_country" AS "c_birth_country",
+ "customer"."c_login" AS "c_login",
+ "customer"."c_email_address" AS "c_email_address",
+ "customer"."c_last_review_date" AS "c_last_review_date",
+ "ctr1"."ctr_total_return" AS "ctr_total_return"
+FROM "customer_total_return" AS "ctr1"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "ctr1"."ctr_state" = "_u_0"."_u_1"
+JOIN "customer" AS "customer"
+ ON "ctr1"."ctr_customer_sk" = "customer"."c_customer_sk"
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ AND "customer_address"."ca_state" = 'IN'
+WHERE
+ "ctr1"."ctr_total_return" > "_u_0"."_col_0"
+ORDER BY
+ "c_customer_id",
+ "c_salutation",
+ "c_first_name",
+ "c_last_name",
+ "c_preferred_cust_flag",
+ "c_birth_day",
+ "c_birth_month",
+ "c_birth_year",
+ "c_birth_country",
+ "c_login",
+ "c_email_address",
+ "c_last_review_date",
+ "ctr_total_return"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 31
+--------------------------------------
+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 / ws1.web_sales web_q1_q2_increase,
+ ss2.store_sales / ss1.store_sales store_q1_q2_increase,
+ ws3.web_sales / ws2.web_sales web_q2_q3_increase,
+ ss3.store_sales / 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 = 2001
+ AND ss1.ca_county = ss2.ca_county
+ AND ss2.d_qoy = 2
+ AND ss2.d_year = 2001
+ AND ss2.ca_county = ss3.ca_county
+ AND ss3.d_qoy = 3
+ AND ss3.d_year = 2001
+ AND ss1.ca_county = ws1.ca_county
+ AND ws1.d_qoy = 1
+ AND ws1.d_year = 2001
+ AND ws1.ca_county = ws2.ca_county
+ AND ws2.d_qoy = 2
+ AND ws2.d_year = 2001
+ AND ws1.ca_county = ws3.ca_county
+ AND ws3.d_qoy = 3
+ AND ws3.d_year = 2001
+ AND CASE
+ WHEN ws1.web_sales > 0 THEN ws2.web_sales / ws1.web_sales
+ ELSE NULL
+ END > CASE
+ WHEN ss1.store_sales > 0 THEN
+ ss2.store_sales / ss1.store_sales
+ ELSE NULL
+ END
+ AND CASE
+ WHEN ws2.web_sales > 0 THEN ws3.web_sales / ws2.web_sales
+ ELSE NULL
+ END > CASE
+ WHEN ss2.store_sales > 0 THEN
+ ss3.store_sales / ss2.store_sales
+ ELSE NULL
+ END
+ORDER BY ss1.d_year;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy"
+ FROM "date_dim" AS "date_dim"
+), "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_county" AS "ca_county"
+ FROM "customer_address" AS "customer_address"
+), "ss" AS (
+ SELECT
+ "customer_address"."ca_county" AS "ca_county",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_year" AS "d_year",
+ SUM("store_sales"."ss_ext_sales_price") AS "store_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "customer_address"."ca_county",
+ "date_dim"."d_qoy",
+ "date_dim"."d_year"
+), "ws" AS (
+ SELECT
+ "customer_address"."ca_county" AS "ca_county",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_year" AS "d_year",
+ SUM("web_sales"."ws_ext_sales_price") AS "web_sales"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "web_sales"."ws_bill_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "customer_address"."ca_county",
+ "date_dim"."d_qoy",
+ "date_dim"."d_year"
+)
+SELECT
+ "ss1"."ca_county" AS "ca_county",
+ "ss1"."d_year" AS "d_year",
+ "ws2"."web_sales" / "ws1"."web_sales" AS "web_q1_q2_increase",
+ "ss2"."store_sales" / "ss1"."store_sales" AS "store_q1_q2_increase",
+ "ws3"."web_sales" / "ws2"."web_sales" AS "web_q2_q3_increase",
+ "ss3"."store_sales" / "ss2"."store_sales" AS "store_q2_q3_increase"
+FROM "ss" AS "ss1"
+JOIN "ss" AS "ss2"
+ ON "ss1"."ca_county" = "ss2"."ca_county" AND "ss2"."d_qoy" = 2 AND "ss2"."d_year" = 2001
+JOIN "ws" AS "ws2"
+ ON "ws2"."d_qoy" = 2 AND "ws2"."d_year" = 2001
+JOIN "ws" AS "ws1"
+ ON "ss1"."ca_county" = "ws1"."ca_county"
+ AND "ws1"."ca_county" = "ws2"."ca_county"
+ AND "ws1"."d_qoy" = 1
+ AND "ws1"."d_year" = 2001
+ AND CASE
+ WHEN "ws1"."web_sales" > 0
+ THEN "ws2"."web_sales" / "ws1"."web_sales"
+ ELSE NULL
+ END > CASE
+ WHEN "ss1"."store_sales" > 0
+ THEN "ss2"."store_sales" / "ss1"."store_sales"
+ ELSE NULL
+ END
+JOIN "ws" AS "ws3"
+ ON "ws1"."ca_county" = "ws3"."ca_county" AND "ws3"."d_qoy" = 3 AND "ws3"."d_year" = 2001
+JOIN "ss" AS "ss3"
+ ON "ss2"."ca_county" = "ss3"."ca_county"
+ AND "ss3"."d_qoy" = 3
+ AND "ss3"."d_year" = 2001
+ AND CASE
+ WHEN "ws2"."web_sales" > 0
+ THEN "ws3"."web_sales" / "ws2"."web_sales"
+ ELSE NULL
+ END > CASE
+ WHEN "ss2"."store_sales" > 0
+ THEN "ss3"."store_sales" / "ss2"."store_sales"
+ ELSE NULL
+ END
+WHERE
+ "ss1"."d_qoy" = 1 AND "ss1"."d_year" = 2001
+ORDER BY
+ "ss1"."d_year";
+
+--------------------------------------
+-- TPC-DS 32
+--------------------------------------
+SELECT
+ Sum(cs_ext_discount_amt) AS "excess discount amount"
+FROM catalog_sales ,
+ item ,
+ date_dim
+WHERE i_manufact_id = 610
+AND i_item_sk = cs_item_sk
+AND d_date BETWEEN '2001-03-04' AND (
+ Cast('2001-03-04' AS DATE) + INTERVAL '90' day)
+AND d_date_sk = cs_sold_date_sk
+AND cs_ext_discount_amt >
+ (
+ SELECT 1.3 * avg(cs_ext_discount_amt)
+ FROM catalog_sales ,
+ date_dim
+ WHERE cs_item_sk = i_item_sk
+ AND d_date BETWEEN '2001-03-04' AND (
+ cast('2001-03-04' AS date) + INTERVAL '90' day)
+ AND d_date_sk = cs_sold_date_sk )
+LIMIT 100;
+WITH "catalog_sales_2" AS (
+ SELECT
+ "catalog_sales"."cs_sold_date_sk" AS "cs_sold_date_sk",
+ "catalog_sales"."cs_item_sk" AS "cs_item_sk",
+ "catalog_sales"."cs_ext_discount_amt" AS "cs_ext_discount_amt"
+ FROM "catalog_sales" AS "catalog_sales"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_date" >= '2001-03-04'
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2001-06-02' AS DATE)
+), "_u_0" AS (
+ SELECT
+ 1.3 * AVG("catalog_sales"."cs_ext_discount_amt") AS "_col_0",
+ "catalog_sales"."cs_item_sk" AS "_u_1"
+ FROM "catalog_sales_2" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "catalog_sales"."cs_sold_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_item_sk"
+)
+SELECT
+ SUM("catalog_sales"."cs_ext_discount_amt") AS "excess discount amount"
+FROM "catalog_sales_2" AS "catalog_sales"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "catalog_sales"."cs_item_sk" AND "item"."i_manufact_id" = 610
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "_u_0"."_u_1" = "item"."i_item_sk"
+JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "catalog_sales"."cs_sold_date_sk"
+WHERE
+ "catalog_sales"."cs_ext_discount_amt" > "_u_0"."_col_0"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 33
+--------------------------------------
+WITH ss
+ AS (SELECT i_manufact_id,
+ Sum(ss_ext_sales_price) total_sales
+ FROM store_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_manufact_id IN (SELECT i_manufact_id
+ FROM item
+ WHERE i_category IN ( 'Books' ))
+ AND ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 3
+ AND ss_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -5
+ GROUP BY i_manufact_id),
+ cs
+ AS (SELECT i_manufact_id,
+ Sum(cs_ext_sales_price) total_sales
+ FROM catalog_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_manufact_id IN (SELECT i_manufact_id
+ FROM item
+ WHERE i_category IN ( 'Books' ))
+ AND cs_item_sk = i_item_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 3
+ AND cs_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -5
+ GROUP BY i_manufact_id),
+ ws
+ AS (SELECT i_manufact_id,
+ Sum(ws_ext_sales_price) total_sales
+ FROM web_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_manufact_id IN (SELECT i_manufact_id
+ FROM item
+ WHERE i_category IN ( 'Books' ))
+ AND ws_item_sk = i_item_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 3
+ AND ws_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -5
+ GROUP BY i_manufact_id)
+SELECT i_manufact_id,
+ Sum(total_sales) total_sales
+FROM (SELECT *
+ FROM ss
+ UNION ALL
+ SELECT *
+ FROM cs
+ UNION ALL
+ SELECT *
+ FROM ws) tmp1
+GROUP BY i_manufact_id
+ORDER BY total_sales
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_manufact_id" AS "i_manufact_id"
+ FROM "item" AS "item"
+), "_u_0" AS (
+ SELECT
+ "item"."i_manufact_id" AS "i_manufact_id"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_category" IN ('Books')
+ GROUP BY
+ "item"."i_manufact_id"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 3 AND "date_dim"."d_year" = 1999
+), "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_gmt_offset" AS "ca_gmt_offset"
+ FROM "customer_address" AS "customer_address"
+ WHERE
+ "customer_address"."ca_gmt_offset" = -5
+), "ss" AS (
+ SELECT
+ "item"."i_manufact_id" AS "i_manufact_id",
+ SUM("store_sales"."ss_ext_sales_price") AS "total_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_0"
+ ON "item"."i_manufact_id" = "_u_0"."i_manufact_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_0"."i_manufact_id" IS NULL
+ GROUP BY
+ "item"."i_manufact_id"
+), "cs" AS (
+ SELECT
+ "item"."i_manufact_id" AS "i_manufact_id",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "total_sales"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_1"
+ ON "item"."i_manufact_id" = "_u_1"."i_manufact_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "catalog_sales"."cs_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_1"."i_manufact_id" IS NULL
+ GROUP BY
+ "item"."i_manufact_id"
+), "ws" AS (
+ SELECT
+ "item"."i_manufact_id" AS "i_manufact_id",
+ SUM("web_sales"."ws_ext_sales_price") AS "total_sales"
+ FROM "web_sales" AS "web_sales"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_2"
+ ON "item"."i_manufact_id" = "_u_2"."i_manufact_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "web_sales"."ws_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_2"."i_manufact_id" IS NULL
+ GROUP BY
+ "item"."i_manufact_id"
+), "cte_4" AS (
+ SELECT
+ "cs"."i_manufact_id" AS "i_manufact_id",
+ "cs"."total_sales" AS "total_sales"
+ FROM "cs"
+ UNION ALL
+ SELECT
+ "ws"."i_manufact_id" AS "i_manufact_id",
+ "ws"."total_sales" AS "total_sales"
+ FROM "ws"
+), "tmp1" AS (
+ SELECT
+ "ss"."i_manufact_id" AS "i_manufact_id",
+ "ss"."total_sales" AS "total_sales"
+ FROM "ss"
+ UNION ALL
+ SELECT
+ "cte_4"."i_manufact_id" AS "i_manufact_id",
+ "cte_4"."total_sales" AS "total_sales"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "tmp1"."i_manufact_id" AS "i_manufact_id",
+ SUM("tmp1"."total_sales") AS "total_sales"
+FROM "tmp1" AS "tmp1"
+GROUP BY
+ "tmp1"."i_manufact_id"
+ORDER BY
+ "total_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 34
+--------------------------------------
+SELECT c_last_name,
+ c_first_name,
+ c_salutation,
+ c_preferred_cust_flag,
+ ss_ticket_number,
+ cnt
+FROM (SELECT ss_ticket_number,
+ ss_customer_sk,
+ Count(*) cnt
+ FROM store_sales,
+ date_dim,
+ store,
+ household_demographics
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_store_sk = store.s_store_sk
+ AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND ( date_dim.d_dom BETWEEN 1 AND 3
+ OR date_dim.d_dom BETWEEN 25 AND 28 )
+ AND ( household_demographics.hd_buy_potential = '>10000'
+ OR household_demographics.hd_buy_potential = 'unknown' )
+ AND household_demographics.hd_vehicle_count > 0
+ AND ( CASE
+ WHEN household_demographics.hd_vehicle_count > 0 THEN
+ household_demographics.hd_dep_count /
+ household_demographics.hd_vehicle_count
+ ELSE NULL
+ END ) > 1.2
+ AND date_dim.d_year IN ( 1999, 1999 + 1, 1999 + 2 )
+ AND store.s_county IN ( 'Williamson County', 'Williamson County',
+ 'Williamson County',
+ 'Williamson County'
+ ,
+ 'Williamson County', 'Williamson County',
+ 'Williamson County',
+ 'Williamson County'
+ )
+ GROUP BY ss_ticket_number,
+ ss_customer_sk) dn,
+ customer
+WHERE ss_customer_sk = c_customer_sk
+ AND cnt BETWEEN 15 AND 20
+ORDER BY c_last_name,
+ c_first_name,
+ c_salutation,
+ c_preferred_cust_flag DESC;
+WITH "dn" AS (
+ SELECT
+ "store_sales"."ss_ticket_number" AS "ss_ticket_number",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ COUNT(*) AS "cnt"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" IN (1999, 2000, 2001)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ AND (
+ (
+ "date_dim"."d_dom" <= 28 AND "date_dim"."d_dom" >= 25
+ )
+ OR (
+ "date_dim"."d_dom" <= 3 AND "date_dim"."d_dom" >= 1
+ )
+ )
+ JOIN "store" AS "store"
+ ON "store"."s_county" IN ('Williamson County', 'Williamson County', 'Williamson County', 'Williamson County', 'Williamson County', 'Williamson County', 'Williamson County', 'Williamson County')
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "household_demographics" AS "household_demographics"
+ ON (
+ "household_demographics"."hd_buy_potential" = '>10000'
+ OR "household_demographics"."hd_buy_potential" = 'unknown'
+ )
+ AND "household_demographics"."hd_vehicle_count" > 0
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND CASE
+ WHEN "household_demographics"."hd_vehicle_count" > 0
+ THEN "household_demographics"."hd_dep_count" / "household_demographics"."hd_vehicle_count"
+ ELSE NULL
+ END > 1.2
+ GROUP BY
+ "store_sales"."ss_ticket_number",
+ "store_sales"."ss_customer_sk"
+)
+SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_salutation" AS "c_salutation",
+ "customer"."c_preferred_cust_flag" AS "c_preferred_cust_flag",
+ "dn"."ss_ticket_number" AS "ss_ticket_number",
+ "dn"."cnt" AS "cnt"
+FROM "dn" AS "dn"
+JOIN "customer" AS "customer"
+ ON "dn"."ss_customer_sk" = "customer"."c_customer_sk"
+WHERE
+ "dn"."cnt" <= 20 AND "dn"."cnt" >= 15
+ORDER BY
+ "c_last_name",
+ "c_first_name",
+ "c_salutation",
+ "c_preferred_cust_flag" DESC;
+
+--------------------------------------
+-- TPC-DS 35
+--------------------------------------
+SELECT ca_state,
+ cd_gender,
+ cd_marital_status,
+ cd_dep_count,
+ Count(*) cnt1,
+ Stddev_samp(cd_dep_count),
+ Avg(cd_dep_count),
+ Max(cd_dep_count),
+ cd_dep_employed_count,
+ Count(*) cnt2,
+ Stddev_samp(cd_dep_employed_count),
+ Avg(cd_dep_employed_count),
+ Max(cd_dep_employed_count),
+ cd_dep_college_count,
+ Count(*) cnt3,
+ Stddev_samp(cd_dep_college_count),
+ Avg(cd_dep_college_count),
+ Max(cd_dep_college_count)
+FROM customer c,
+ customer_address ca,
+ customer_demographics
+WHERE c.c_current_addr_sk = ca.ca_address_sk
+ AND cd_demo_sk = c.c_current_cdemo_sk
+ AND EXISTS (SELECT *
+ FROM store_sales,
+ date_dim
+ WHERE c.c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 2001
+ AND d_qoy < 4)
+ AND ( EXISTS (SELECT *
+ FROM web_sales,
+ date_dim
+ WHERE c.c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 2001
+ AND d_qoy < 4)
+ OR EXISTS (SELECT *
+ FROM catalog_sales,
+ date_dim
+ WHERE c.c_customer_sk = cs_ship_customer_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 2001
+ AND d_qoy < 4) )
+GROUP BY ca_state,
+ cd_gender,
+ cd_marital_status,
+ cd_dep_count,
+ cd_dep_employed_count,
+ cd_dep_college_count
+ORDER BY ca_state,
+ cd_gender,
+ cd_marital_status,
+ cd_dep_count,
+ cd_dep_employed_count,
+ cd_dep_college_count
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date_id" AS "d_date_id",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq",
+ "date_dim"."d_week_seq" AS "d_week_seq",
+ "date_dim"."d_quarter_seq" AS "d_quarter_seq",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_dow" AS "d_dow",
+ "date_dim"."d_moy" AS "d_moy",
+ "date_dim"."d_dom" AS "d_dom",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_fy_year" AS "d_fy_year",
+ "date_dim"."d_fy_quarter_seq" AS "d_fy_quarter_seq",
+ "date_dim"."d_fy_week_seq" AS "d_fy_week_seq",
+ "date_dim"."d_day_name" AS "d_day_name",
+ "date_dim"."d_quarter_name" AS "d_quarter_name",
+ "date_dim"."d_holiday" AS "d_holiday",
+ "date_dim"."d_weekend" AS "d_weekend",
+ "date_dim"."d_following_holiday" AS "d_following_holiday",
+ "date_dim"."d_first_dom" AS "d_first_dom",
+ "date_dim"."d_last_dom" AS "d_last_dom",
+ "date_dim"."d_same_day_ly" AS "d_same_day_ly",
+ "date_dim"."d_same_day_lq" AS "d_same_day_lq",
+ "date_dim"."d_current_day" AS "d_current_day",
+ "date_dim"."d_current_week" AS "d_current_week",
+ "date_dim"."d_current_month" AS "d_current_month",
+ "date_dim"."d_current_quarter" AS "d_current_quarter",
+ "date_dim"."d_current_year" AS "d_current_year"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_qoy" < 4 AND "date_dim"."d_year" = 2001
+), "_u_0" AS (
+ SELECT
+ "store_sales"."ss_customer_sk" AS "_u_1"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "store_sales"."ss_customer_sk"
+), "_u_2" AS (
+ SELECT
+ "web_sales"."ws_bill_customer_sk" AS "_u_3"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "web_sales"."ws_bill_customer_sk"
+), "_u_4" AS (
+ SELECT
+ "catalog_sales"."cs_ship_customer_sk" AS "_u_5"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_ship_customer_sk"
+)
+SELECT
+ "customer_address"."ca_state" AS "ca_state",
+ "customer_demographics"."cd_gender" AS "cd_gender",
+ "customer_demographics"."cd_marital_status" AS "cd_marital_status",
+ "customer_demographics"."cd_dep_count" AS "cd_dep_count",
+ COUNT(*) AS "cnt1",
+ STDDEV_SAMP("customer_demographics"."cd_dep_count") AS "_col_5",
+ AVG("customer_demographics"."cd_dep_count") AS "_col_6",
+ MAX("customer_demographics"."cd_dep_count") AS "_col_7",
+ "customer_demographics"."cd_dep_employed_count" AS "cd_dep_employed_count",
+ COUNT(*) AS "cnt2",
+ STDDEV_SAMP("customer_demographics"."cd_dep_employed_count") AS "_col_10",
+ AVG("customer_demographics"."cd_dep_employed_count") AS "_col_11",
+ MAX("customer_demographics"."cd_dep_employed_count") AS "_col_12",
+ "customer_demographics"."cd_dep_college_count" AS "cd_dep_college_count",
+ COUNT(*) AS "cnt3",
+ STDDEV_SAMP("customer_demographics"."cd_dep_college_count") AS "_col_15",
+ AVG("customer_demographics"."cd_dep_college_count") AS "_col_16",
+ MAX("customer_demographics"."cd_dep_college_count") AS "_col_17"
+FROM "customer" AS "customer"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "customer"."c_customer_sk" = "_u_0"."_u_1"
+LEFT JOIN "_u_2" AS "_u_2"
+ ON "customer"."c_customer_sk" = "_u_2"."_u_3"
+LEFT JOIN "_u_4" AS "_u_4"
+ ON "customer"."c_customer_sk" = "_u_4"."_u_5"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_demo_sk" = "customer"."c_current_cdemo_sk"
+WHERE
+ NOT "_u_0"."_u_1" IS NULL
+ AND (
+ NOT "_u_2"."_u_3" IS NULL OR NOT "_u_4"."_u_5" IS NULL
+ )
+GROUP BY
+ "customer_address"."ca_state",
+ "customer_demographics"."cd_gender",
+ "customer_demographics"."cd_marital_status",
+ "customer_demographics"."cd_dep_count",
+ "customer_demographics"."cd_dep_employed_count",
+ "customer_demographics"."cd_dep_college_count"
+ORDER BY
+ "ca_state",
+ "cd_gender",
+ "cd_marital_status",
+ "cd_dep_count",
+ "cd_dep_employed_count",
+ "cd_dep_college_count"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 36
+--------------------------------------
+SELECT Sum(ss_net_profit) / Sum(ss_ext_sales_price) AS
+ gross_margin,
+ i_category,
+ i_class,
+ Grouping(i_category) + Grouping(i_class) AS
+ lochierarchy,
+ Rank()
+ OVER (
+ partition BY Grouping(i_category)+Grouping(i_class), CASE
+ WHEN Grouping(
+ i_class) = 0 THEN i_category END
+ ORDER BY Sum(ss_net_profit)/Sum(ss_ext_sales_price) ASC) AS
+ rank_within_parent
+FROM store_sales,
+ date_dim d1,
+ item,
+ store
+WHERE d1.d_year = 2000
+ AND d1.d_date_sk = ss_sold_date_sk
+ AND i_item_sk = ss_item_sk
+ AND s_store_sk = ss_store_sk
+ AND s_state IN ( 'TN', 'TN', 'TN', 'TN',
+ 'TN', 'TN', 'TN', 'TN' )
+GROUP BY rollup( i_category, i_class )
+ORDER BY lochierarchy DESC,
+ CASE
+ WHEN lochierarchy = 0 THEN i_category
+ END,
+ rank_within_parent
+LIMIT 100;
+SELECT
+ SUM("store_sales"."ss_net_profit") / SUM("store_sales"."ss_ext_sales_price") AS "gross_margin",
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ GROUPING("item"."i_category") + GROUPING("item"."i_class") AS "lochierarchy",
+ RANK() OVER (PARTITION BY GROUPING("item"."i_category") + GROUPING("item"."i_class"), CASE WHEN GROUPING("item"."i_class") = 0 THEN "item"."i_category" END ORDER BY SUM("store_sales"."ss_net_profit") / SUM("store_sales"."ss_ext_sales_price")) AS "rank_within_parent"
+FROM "store_sales" AS "store_sales"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ AND "date_dim"."d_year" = 2000
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "store_sales"."ss_item_sk"
+JOIN "store" AS "store"
+ ON "store"."s_state" IN ('TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN')
+ AND "store"."s_store_sk" = "store_sales"."ss_store_sk"
+GROUP BY
+ROLLUP (
+ "item"."i_category",
+ "item"."i_class"
+)
+ORDER BY
+ "lochierarchy" DESC,
+ CASE WHEN "lochierarchy" = 0 THEN "item"."i_category" END,
+ "rank_within_parent"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 37
+--------------------------------------
+SELECT
+ i_item_id ,
+ i_item_desc ,
+ i_current_price
+FROM item,
+ inventory,
+ date_dim,
+ catalog_sales
+WHERE i_current_price BETWEEN 20 AND 20 + 30
+AND inv_item_sk = i_item_sk
+AND d_date_sk=inv_date_sk
+AND d_date BETWEEN Cast('1999-03-06' AS DATE) AND (
+ Cast('1999-03-06' AS DATE) + INTERVAL '60' day)
+AND i_manufact_id IN (843,815,850,840)
+AND inv_quantity_on_hand BETWEEN 100 AND 500
+AND cs_item_sk = i_item_sk
+GROUP BY i_item_id,
+ i_item_desc,
+ i_current_price
+ORDER BY i_item_id
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "item"."i_current_price" AS "i_current_price"
+FROM "item" AS "item"
+JOIN "inventory" AS "inventory"
+ ON "inventory"."inv_item_sk" = "item"."i_item_sk"
+ AND "inventory"."inv_quantity_on_hand" <= 500
+ AND "inventory"."inv_quantity_on_hand" >= 100
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "inventory"."inv_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('1999-05-05' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('1999-03-06' AS DATE)
+JOIN "catalog_sales" AS "catalog_sales"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+WHERE
+ "item"."i_current_price" <= 50
+ AND "item"."i_current_price" >= 20
+ AND "item"."i_manufact_id" IN (843, 815, 850, 840)
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "item"."i_current_price"
+ORDER BY
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 38
+--------------------------------------
+SELECT Count(*)
+FROM (SELECT DISTINCT c_last_name,
+ c_first_name,
+ d_date
+ FROM store_sales,
+ date_dim,
+ customer
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_customer_sk = customer.c_customer_sk
+ AND d_month_seq BETWEEN 1188 AND 1188 + 11
+ INTERSECT
+ SELECT DISTINCT c_last_name,
+ c_first_name,
+ d_date
+ FROM catalog_sales,
+ date_dim,
+ customer
+ WHERE catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
+ AND catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
+ AND d_month_seq BETWEEN 1188 AND 1188 + 11
+ INTERSECT
+ SELECT DISTINCT c_last_name,
+ c_first_name,
+ d_date
+ FROM web_sales,
+ date_dim,
+ customer
+ WHERE web_sales.ws_sold_date_sk = date_dim.d_date_sk
+ AND web_sales.ws_bill_customer_sk = customer.c_customer_sk
+ AND d_month_seq BETWEEN 1188 AND 1188 + 11) hot_cust
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1199 AND "date_dim"."d_month_seq" >= 1188
+), "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name"
+ FROM "customer" AS "customer"
+), "cte" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+), "cte_2" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "catalog_sales"."cs_bill_customer_sk" = "customer"."c_customer_sk"
+), "cte_3" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "web_sales"."ws_bill_customer_sk" = "customer"."c_customer_sk"
+), "cte_4" AS (
+ SELECT
+ "cte_2"."c_last_name" AS "c_last_name",
+ "cte_2"."c_first_name" AS "c_first_name",
+ "cte_2"."d_date" AS "d_date"
+ FROM "cte_2" AS "cte_2"
+ INTERSECT
+ SELECT
+ "cte_3"."c_last_name" AS "c_last_name",
+ "cte_3"."c_first_name" AS "c_first_name",
+ "cte_3"."d_date" AS "d_date"
+ FROM "cte_3" AS "cte_3"
+), "hot_cust" AS (
+ SELECT
+ "cte"."c_last_name" AS "c_last_name",
+ "cte"."c_first_name" AS "c_first_name",
+ "cte"."d_date" AS "d_date"
+ FROM "cte" AS "cte"
+ INTERSECT
+ SELECT
+ "cte_4"."c_last_name" AS "c_last_name",
+ "cte_4"."c_first_name" AS "c_first_name",
+ "cte_4"."d_date" AS "d_date"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ COUNT(*) AS "_col_0"
+FROM "hot_cust" AS "hot_cust"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 39
+--------------------------------------
+WITH inv
+ AS (SELECT w_warehouse_name,
+ w_warehouse_sk,
+ i_item_sk,
+ d_moy,
+ stdev,
+ mean,
+ CASE mean
+ WHEN 0 THEN NULL
+ ELSE stdev / mean
+ END cov
+ FROM (SELECT w_warehouse_name,
+ w_warehouse_sk,
+ i_item_sk,
+ d_moy,
+ Stddev_samp(inv_quantity_on_hand) stdev,
+ Avg(inv_quantity_on_hand) mean
+ FROM inventory,
+ item,
+ warehouse,
+ date_dim
+ WHERE inv_item_sk = i_item_sk
+ AND inv_warehouse_sk = w_warehouse_sk
+ AND inv_date_sk = d_date_sk
+ AND d_year = 2002
+ GROUP BY w_warehouse_name,
+ w_warehouse_sk,
+ i_item_sk,
+ d_moy) foo
+ WHERE CASE mean
+ WHEN 0 THEN 0
+ ELSE stdev / mean
+ END > 1)
+SELECT inv1.w_warehouse_sk,
+ inv1.i_item_sk,
+ inv1.d_moy,
+ inv1.mean,
+ inv1.cov,
+ inv2.w_warehouse_sk,
+ inv2.i_item_sk,
+ inv2.d_moy,
+ inv2.mean,
+ inv2.cov
+FROM inv inv1,
+ inv inv2
+WHERE inv1.i_item_sk = inv2.i_item_sk
+ AND inv1.w_warehouse_sk = inv2.w_warehouse_sk
+ AND inv1.d_moy = 1
+ AND inv2.d_moy = 1 + 1
+ORDER BY inv1.w_warehouse_sk,
+ inv1.i_item_sk,
+ inv1.d_moy,
+ inv1.mean,
+ inv1.cov,
+ inv2.d_moy,
+ inv2.mean,
+ inv2.cov;
+WITH "foo" AS (
+ SELECT
+ "warehouse"."w_warehouse_sk" AS "w_warehouse_sk",
+ "item"."i_item_sk" AS "i_item_sk",
+ "date_dim"."d_moy" AS "d_moy",
+ STDDEV_SAMP("inventory"."inv_quantity_on_hand") AS "stdev",
+ AVG("inventory"."inv_quantity_on_hand") AS "mean"
+ FROM "inventory" AS "inventory"
+ JOIN "item" AS "item"
+ ON "inventory"."inv_item_sk" = "item"."i_item_sk"
+ JOIN "warehouse" AS "warehouse"
+ ON "inventory"."inv_warehouse_sk" = "warehouse"."w_warehouse_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2002 AND "inventory"."inv_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "warehouse"."w_warehouse_name",
+ "warehouse"."w_warehouse_sk",
+ "item"."i_item_sk",
+ "date_dim"."d_moy"
+), "inv" AS (
+ SELECT
+ "foo"."w_warehouse_sk" AS "w_warehouse_sk",
+ "foo"."i_item_sk" AS "i_item_sk",
+ "foo"."d_moy" AS "d_moy",
+ "foo"."mean" AS "mean",
+ CASE "foo"."mean" WHEN 0 THEN NULL ELSE "foo"."stdev" / "foo"."mean" END AS "cov"
+ FROM "foo" AS "foo"
+ WHERE
+ CASE "foo"."mean" WHEN 0 THEN 0 ELSE "foo"."stdev" / "foo"."mean" END > 1
+)
+SELECT
+ "inv1"."w_warehouse_sk" AS "w_warehouse_sk",
+ "inv1"."i_item_sk" AS "i_item_sk",
+ "inv1"."d_moy" AS "d_moy",
+ "inv1"."mean" AS "mean",
+ "inv1"."cov" AS "cov",
+ "inv2"."w_warehouse_sk" AS "w_warehouse_sk",
+ "inv2"."i_item_sk" AS "i_item_sk",
+ "inv2"."d_moy" AS "d_moy",
+ "inv2"."mean" AS "mean",
+ "inv2"."cov" AS "cov"
+FROM "inv" AS "inv1"
+JOIN "inv" AS "inv2"
+ ON "inv1"."i_item_sk" = "inv2"."i_item_sk"
+ AND "inv1"."w_warehouse_sk" = "inv2"."w_warehouse_sk"
+ AND "inv2"."d_moy" = 2
+WHERE
+ "inv1"."d_moy" = 1
+ORDER BY
+ "inv1"."w_warehouse_sk",
+ "inv1"."i_item_sk",
+ "inv1"."d_moy",
+ "inv1"."mean",
+ "inv1"."cov",
+ "inv2"."d_moy",
+ "inv2"."mean",
+ "inv2"."cov";
+
+--------------------------------------
+-- TPC-DS 40
+--------------------------------------
+SELECT
+ w_state ,
+ i_item_id ,
+ Sum(
+ CASE
+ WHEN (
+ Cast(d_date AS DATE) < Cast ('2002-06-01' AS DATE)) THEN cs_sales_price - COALESCE(cr_refunded_cash,0)
+ ELSE 0
+ END) AS sales_before ,
+ Sum(
+ CASE
+ WHEN (
+ Cast(d_date AS DATE) >= Cast ('2002-06-01' AS DATE)) THEN cs_sales_price - COALESCE(cr_refunded_cash,0)
+ ELSE 0
+ END) AS sales_after
+FROM catalog_sales
+LEFT OUTER JOIN catalog_returns
+ON (
+ cs_order_number = cr_order_number
+ AND cs_item_sk = cr_item_sk) ,
+ warehouse ,
+ item ,
+ date_dim
+WHERE i_current_price BETWEEN 0.99 AND 1.49
+AND i_item_sk = cs_item_sk
+AND cs_warehouse_sk = w_warehouse_sk
+AND cs_sold_date_sk = d_date_sk
+AND d_date BETWEEN (Cast ('2002-06-01' AS DATE) - INTERVAL '30' day) AND (
+ cast ('2002-06-01' AS date) + INTERVAL '30' day)
+GROUP BY w_state,
+ i_item_id
+ORDER BY w_state,
+ i_item_id
+LIMIT 100;
+SELECT
+ "warehouse"."w_state" AS "w_state",
+ "item"."i_item_id" AS "i_item_id",
+ SUM(
+ CASE
+ WHEN CAST("date_dim"."d_date" AS DATE) < CAST('2002-06-01' AS DATE)
+ THEN "catalog_sales"."cs_sales_price" - COALESCE("catalog_returns"."cr_refunded_cash", 0)
+ ELSE 0
+ END
+ ) AS "sales_before",
+ SUM(
+ CASE
+ WHEN CAST("date_dim"."d_date" AS DATE) >= CAST('2002-06-01' AS DATE)
+ THEN "catalog_sales"."cs_sales_price" - COALESCE("catalog_returns"."cr_refunded_cash", 0)
+ ELSE 0
+ END
+ ) AS "sales_after"
+FROM "catalog_sales" AS "catalog_sales"
+LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ AND "catalog_sales"."cs_order_number" = "catalog_returns"."cr_order_number"
+JOIN "warehouse" AS "warehouse"
+ ON "catalog_sales"."cs_warehouse_sk" = "warehouse"."w_warehouse_sk"
+JOIN "item" AS "item"
+ ON "item"."i_current_price" <= 1.49
+ AND "item"."i_current_price" >= 0.99
+ AND "item"."i_item_sk" = "catalog_sales"."cs_item_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2002-07-01' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2002-05-02' AS DATE)
+GROUP BY
+ "warehouse"."w_state",
+ "item"."i_item_id"
+ORDER BY
+ "w_state",
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 41
+--------------------------------------
+SELECT Distinct(i_product_name)
+FROM item i1
+WHERE i_manufact_id BETWEEN 765 AND 765 + 40
+ AND (SELECT Count(*) AS item_cnt
+ FROM item
+ WHERE ( i_manufact = i1.i_manufact
+ AND ( ( i_category = 'Women'
+ AND ( i_color = 'dim'
+ OR i_color = 'green' )
+ AND ( i_units = 'Gross'
+ OR i_units = 'Dozen' )
+ AND ( i_size = 'economy'
+ OR i_size = 'petite' ) )
+ OR ( i_category = 'Women'
+ AND ( i_color = 'navajo'
+ OR i_color = 'aquamarine' )
+ AND ( i_units = 'Case'
+ OR i_units = 'Unknown' )
+ AND ( i_size = 'large'
+ OR i_size = 'N/A' ) )
+ OR ( i_category = 'Men'
+ AND ( i_color = 'indian'
+ OR i_color = 'dark' )
+ AND ( i_units = 'Oz'
+ OR i_units = 'Lb' )
+ AND ( i_size = 'extra large'
+ OR i_size = 'small' ) )
+ OR ( i_category = 'Men'
+ AND ( i_color = 'peach'
+ OR i_color = 'purple' )
+ AND ( i_units = 'Tbl'
+ OR i_units = 'Bunch' )
+ AND ( i_size = 'economy'
+ OR i_size = 'petite' ) ) ) )
+ OR ( i_manufact = i1.i_manufact
+ AND ( ( i_category = 'Women'
+ AND ( i_color = 'orchid'
+ OR i_color = 'peru' )
+ AND ( i_units = 'Carton'
+ OR i_units = 'Cup' )
+ AND ( i_size = 'economy'
+ OR i_size = 'petite' ) )
+ OR ( i_category = 'Women'
+ AND ( i_color = 'violet'
+ OR i_color = 'papaya' )
+ AND ( i_units = 'Ounce'
+ OR i_units = 'Box' )
+ AND ( i_size = 'large'
+ OR i_size = 'N/A' ) )
+ OR ( i_category = 'Men'
+ AND ( i_color = 'drab'
+ OR i_color = 'grey' )
+ AND ( i_units = 'Each'
+ OR i_units = 'N/A' )
+ AND ( i_size = 'extra large'
+ OR i_size = 'small' ) )
+ OR ( i_category = 'Men'
+ AND ( i_color = 'chocolate'
+ OR i_color = 'antique' )
+ AND ( i_units = 'Dram'
+ OR i_units = 'Gram' )
+ AND ( i_size = 'economy'
+ OR i_size = 'petite' ) ) ) )) > 0
+ORDER BY i_product_name
+LIMIT 100;
+SELECT DISTINCT
+ "i1"."i_product_name" AS "_col_0"
+FROM "item" AS "i1"
+WHERE
+ "i1"."i_manufact_id" <= 805
+ AND "i1"."i_manufact_id" >= 765
+ AND (
+ SELECT
+ COUNT(*) AS "item_cnt"
+ FROM "item" AS "item"
+ WHERE
+ (
+ "item"."i_manufact" = "i1"."i_manufact"
+ AND (
+ (
+ "item"."i_category" = 'Men'
+ AND (
+ "item"."i_color" = 'antique' OR "item"."i_color" = 'chocolate'
+ )
+ AND (
+ "item"."i_size" = 'economy' OR "item"."i_size" = 'petite'
+ )
+ AND (
+ "item"."i_units" = 'Dram' OR "item"."i_units" = 'Gram'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Men'
+ AND (
+ "item"."i_color" = 'drab' OR "item"."i_color" = 'grey'
+ )
+ AND (
+ "item"."i_size" = 'extra large' OR "item"."i_size" = 'small'
+ )
+ AND (
+ "item"."i_units" = 'Each' OR "item"."i_units" = 'N/A'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Women'
+ AND (
+ "item"."i_color" = 'orchid' OR "item"."i_color" = 'peru'
+ )
+ AND (
+ "item"."i_size" = 'economy' OR "item"."i_size" = 'petite'
+ )
+ AND (
+ "item"."i_units" = 'Carton' OR "item"."i_units" = 'Cup'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Women'
+ AND (
+ "item"."i_color" = 'papaya' OR "item"."i_color" = 'violet'
+ )
+ AND (
+ "item"."i_size" = 'N/A' OR "item"."i_size" = 'large'
+ )
+ AND (
+ "item"."i_units" = 'Box' OR "item"."i_units" = 'Ounce'
+ )
+ )
+ )
+ )
+ OR (
+ "item"."i_manufact" = "i1"."i_manufact"
+ AND (
+ (
+ "item"."i_category" = 'Men'
+ AND (
+ "item"."i_color" = 'dark' OR "item"."i_color" = 'indian'
+ )
+ AND (
+ "item"."i_size" = 'extra large' OR "item"."i_size" = 'small'
+ )
+ AND (
+ "item"."i_units" = 'Lb' OR "item"."i_units" = 'Oz'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Men'
+ AND (
+ "item"."i_color" = 'peach' OR "item"."i_color" = 'purple'
+ )
+ AND (
+ "item"."i_size" = 'economy' OR "item"."i_size" = 'petite'
+ )
+ AND (
+ "item"."i_units" = 'Bunch' OR "item"."i_units" = 'Tbl'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Women'
+ AND (
+ "item"."i_color" = 'aquamarine' OR "item"."i_color" = 'navajo'
+ )
+ AND (
+ "item"."i_size" = 'N/A' OR "item"."i_size" = 'large'
+ )
+ AND (
+ "item"."i_units" = 'Case' OR "item"."i_units" = 'Unknown'
+ )
+ )
+ OR (
+ "item"."i_category" = 'Women'
+ AND (
+ "item"."i_color" = 'dim' OR "item"."i_color" = 'green'
+ )
+ AND (
+ "item"."i_size" = 'economy' OR "item"."i_size" = 'petite'
+ )
+ AND (
+ "item"."i_units" = 'Dozen' OR "item"."i_units" = 'Gross'
+ )
+ )
+ )
+ )
+ ) > 0
+ORDER BY
+ "i1"."i_product_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 42
+--------------------------------------
+SELECT dt.d_year,
+ item.i_category_id,
+ item.i_category,
+ Sum(ss_ext_sales_price)
+FROM date_dim dt,
+ store_sales,
+ item
+WHERE dt.d_date_sk = store_sales.ss_sold_date_sk
+ AND store_sales.ss_item_sk = item.i_item_sk
+ AND item.i_manager_id = 1
+ AND dt.d_moy = 12
+ AND dt.d_year = 2000
+GROUP BY dt.d_year,
+ item.i_category_id,
+ item.i_category
+ORDER BY Sum(ss_ext_sales_price) DESC,
+ dt.d_year,
+ item.i_category_id,
+ item.i_category
+LIMIT 100;
+SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_category_id" AS "i_category_id",
+ "item"."i_category" AS "i_category",
+ SUM("store_sales"."ss_ext_sales_price") AS "_col_3"
+FROM "date_dim" AS "date_dim"
+JOIN "store_sales" AS "store_sales"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+JOIN "item" AS "item"
+ ON "item"."i_manager_id" = 1 AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+WHERE
+ "date_dim"."d_moy" = 12 AND "date_dim"."d_year" = 2000
+GROUP BY
+ "date_dim"."d_year",
+ "item"."i_category_id",
+ "item"."i_category"
+ORDER BY
+ SUM("store_sales"."ss_ext_sales_price") DESC,
+ "date_dim"."d_year",
+ "item"."i_category_id",
+ "item"."i_category"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 43
+--------------------------------------
+SELECT s_store_name,
+ s_store_id,
+ 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 date_dim,
+ store_sales,
+ store
+WHERE d_date_sk = ss_sold_date_sk
+ AND s_store_sk = ss_store_sk
+ AND s_gmt_offset = -5
+ AND d_year = 2002
+GROUP BY s_store_name,
+ s_store_id
+ORDER BY s_store_name,
+ s_store_id,
+ sun_sales,
+ mon_sales,
+ tue_sales,
+ wed_sales,
+ thu_sales,
+ fri_sales,
+ sat_sales
+LIMIT 100;
+SELECT
+ "store"."s_store_name" AS "s_store_name",
+ "store"."s_store_id" AS "s_store_id",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Sunday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "sun_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Monday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "mon_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Tuesday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "tue_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Wednesday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "wed_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Thursday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "thu_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Friday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "fri_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Saturday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "sat_sales"
+FROM "date_dim" AS "date_dim"
+JOIN "store_sales" AS "store_sales"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+JOIN "store" AS "store"
+ ON "store"."s_gmt_offset" = -5 AND "store"."s_store_sk" = "store_sales"."ss_store_sk"
+WHERE
+ "date_dim"."d_year" = 2002
+GROUP BY
+ "store"."s_store_name",
+ "store"."s_store_id"
+ORDER BY
+ "s_store_name",
+ "s_store_id",
+ "sun_sales",
+ "mon_sales",
+ "tue_sales",
+ "wed_sales",
+ "thu_sales",
+ "fri_sales",
+ "sat_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 44
+--------------------------------------
+SELECT asceding.rnk,
+ i1.i_product_name best_performing,
+ i2.i_product_name worst_performing
+FROM (SELECT *
+ FROM (SELECT item_sk,
+ Rank()
+ OVER (
+ ORDER BY rank_col ASC) rnk
+ FROM (SELECT ss_item_sk item_sk,
+ Avg(ss_net_profit) rank_col
+ FROM store_sales ss1
+ WHERE ss_store_sk = 4
+ GROUP BY ss_item_sk
+ HAVING Avg(ss_net_profit) > 0.9 *
+ (SELECT Avg(ss_net_profit)
+ rank_col
+ FROM store_sales
+ WHERE ss_store_sk = 4
+ AND ss_cdemo_sk IS
+ NULL
+ GROUP BY ss_store_sk))V1)
+ V11
+ WHERE rnk < 11) asceding,
+ (SELECT *
+ FROM (SELECT item_sk,
+ Rank()
+ OVER (
+ ORDER BY rank_col DESC) rnk
+ FROM (SELECT ss_item_sk item_sk,
+ Avg(ss_net_profit) rank_col
+ FROM store_sales ss1
+ WHERE ss_store_sk = 4
+ GROUP BY ss_item_sk
+ HAVING Avg(ss_net_profit) > 0.9 *
+ (SELECT Avg(ss_net_profit)
+ rank_col
+ FROM store_sales
+ WHERE ss_store_sk = 4
+ AND ss_cdemo_sk IS
+ NULL
+ GROUP BY ss_store_sk))V2)
+ V21
+ WHERE rnk < 11) descending,
+ item i1,
+ item i2
+WHERE asceding.rnk = descending.rnk
+ AND i1.i_item_sk = asceding.item_sk
+ AND i2.i_item_sk = descending.item_sk
+ORDER BY asceding.rnk
+LIMIT 100;
+WITH "_u_0" AS (
+ SELECT
+ AVG("store_sales"."ss_net_profit") AS "rank_col"
+ FROM "store_sales" AS "store_sales"
+ WHERE
+ "store_sales"."ss_cdemo_sk" IS NULL AND "store_sales"."ss_store_sk" = 4
+ GROUP BY
+ "store_sales"."ss_store_sk"
+), "v1" AS (
+ SELECT
+ "ss1"."ss_item_sk" AS "item_sk",
+ AVG("ss1"."ss_net_profit") AS "rank_col"
+ FROM "store_sales" AS "ss1"
+ CROSS JOIN "_u_0" AS "_u_0"
+ WHERE
+ "ss1"."ss_store_sk" = 4
+ GROUP BY
+ "ss1"."ss_item_sk"
+ HAVING
+ AVG("ss1"."ss_net_profit") > 0.9 * MAX("_u_0"."rank_col")
+), "v11" AS (
+ SELECT
+ "v1"."item_sk" AS "item_sk",
+ RANK() OVER (ORDER BY "v1"."rank_col") AS "rnk"
+ FROM "v1" AS "v1"
+), "v2" AS (
+ SELECT
+ "ss1"."ss_item_sk" AS "item_sk",
+ AVG("ss1"."ss_net_profit") AS "rank_col"
+ FROM "store_sales" AS "ss1"
+ CROSS JOIN "_u_0" AS "_u_1"
+ WHERE
+ "ss1"."ss_store_sk" = 4
+ GROUP BY
+ "ss1"."ss_item_sk"
+ HAVING
+ AVG("ss1"."ss_net_profit") > 0.9 * MAX("_u_1"."rank_col")
+), "v21" AS (
+ SELECT
+ "v2"."item_sk" AS "item_sk",
+ RANK() OVER (ORDER BY "v2"."rank_col" DESC) AS "rnk"
+ FROM "v2" AS "v2"
+), "i1" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_product_name" AS "i_product_name"
+ FROM "item" AS "item"
+)
+SELECT
+ "v11"."rnk" AS "rnk",
+ "i1"."i_product_name" AS "best_performing",
+ "i2"."i_product_name" AS "worst_performing"
+FROM "v11" AS "v11"
+JOIN "v21" AS "v21"
+ ON "v11"."rnk" = "v21"."rnk" AND "v21"."rnk" < 11
+JOIN "i1" AS "i1"
+ ON "i1"."i_item_sk" = "v11"."item_sk"
+JOIN "i1" AS "i2"
+ ON "i2"."i_item_sk" = "v21"."item_sk"
+WHERE
+ "v11"."rnk" < 11
+ORDER BY
+ "v11"."rnk"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 45
+--------------------------------------
+SELECT ca_zip,
+ ca_state,
+ Sum(ws_sales_price)
+FROM web_sales,
+ customer,
+ customer_address,
+ date_dim,
+ item
+WHERE ws_bill_customer_sk = c_customer_sk
+ AND c_current_addr_sk = ca_address_sk
+ AND ws_item_sk = i_item_sk
+ AND ( Substr(ca_zip, 1, 5) IN ( '85669', '86197', '88274', '83405',
+ '86475', '85392', '85460', '80348',
+ '81792' )
+ OR i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_item_sk IN ( 2, 3, 5, 7,
+ 11, 13, 17, 19,
+ 23, 29 )) )
+ AND ws_sold_date_sk = d_date_sk
+ AND d_qoy = 1
+ AND d_year = 2000
+GROUP BY ca_zip,
+ ca_state
+ORDER BY ca_zip,
+ ca_state
+LIMIT 100;
+WITH "_u_0" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_item_sk" IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29)
+ GROUP BY
+ "item"."i_item_id"
+)
+SELECT
+ "customer_address"."ca_zip" AS "ca_zip",
+ "customer_address"."ca_state" AS "ca_state",
+ SUM("web_sales"."ws_sales_price") AS "_col_2"
+FROM "web_sales" AS "web_sales"
+JOIN "item" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "item"."i_item_id" = "_u_0"."i_item_id"
+JOIN "customer" AS "customer"
+ ON "web_sales"."ws_bill_customer_sk" = "customer"."c_customer_sk"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_qoy" = 1
+ AND "date_dim"."d_year" = 2000
+ AND "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+WHERE
+ NOT "_u_0"."i_item_id" IS NULL
+ OR SUBSTR("customer_address"."ca_zip", 1, 5) IN ('85669', '86197', '88274', '83405', '86475', '85392', '85460', '80348', '81792')
+GROUP BY
+ "customer_address"."ca_zip",
+ "customer_address"."ca_state"
+ORDER BY
+ "ca_zip",
+ "ca_state"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 46
+--------------------------------------
+SELECT c_last_name,
+ c_first_name,
+ ca_city,
+ bought_city,
+ ss_ticket_number,
+ amt,
+ profit
+FROM (SELECT ss_ticket_number,
+ ss_customer_sk,
+ ca_city bought_city,
+ Sum(ss_coupon_amt) amt,
+ Sum(ss_net_profit) profit
+ FROM store_sales,
+ date_dim,
+ store,
+ household_demographics,
+ customer_address
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_store_sk = store.s_store_sk
+ AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND store_sales.ss_addr_sk = customer_address.ca_address_sk
+ AND ( household_demographics.hd_dep_count = 6
+ OR household_demographics.hd_vehicle_count = 0 )
+ AND date_dim.d_dow IN ( 6, 0 )
+ AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 )
+ AND store.s_city IN ( 'Midway', 'Fairview', 'Fairview',
+ 'Fairview',
+ 'Fairview' )
+ GROUP BY ss_ticket_number,
+ ss_customer_sk,
+ ss_addr_sk,
+ ca_city) dn,
+ customer,
+ customer_address current_addr
+WHERE ss_customer_sk = c_customer_sk
+ AND customer.c_current_addr_sk = current_addr.ca_address_sk
+ AND current_addr.ca_city <> bought_city
+ORDER BY c_last_name,
+ c_first_name,
+ ca_city,
+ bought_city,
+ ss_ticket_number
+LIMIT 100;
+WITH "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_city" AS "ca_city"
+ FROM "customer_address" AS "customer_address"
+), "dn" AS (
+ SELECT
+ "store_sales"."ss_ticket_number" AS "ss_ticket_number",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ "customer_address"."ca_city" AS "bought_city",
+ SUM("store_sales"."ss_coupon_amt") AS "amt",
+ SUM("store_sales"."ss_net_profit") AS "profit"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_dow" IN (6, 0)
+ AND "date_dim"."d_year" IN (2000, 2001, 2002)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store"."s_city" IN ('Midway', 'Fairview', 'Fairview', 'Fairview', 'Fairview')
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "household_demographics" AS "household_demographics"
+ ON (
+ "household_demographics"."hd_dep_count" = 6
+ OR "household_demographics"."hd_vehicle_count" = 0
+ )
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "store_sales"."ss_ticket_number",
+ "store_sales"."ss_customer_sk",
+ "store_sales"."ss_addr_sk",
+ "customer_address"."ca_city"
+)
+SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "current_addr"."ca_city" AS "ca_city",
+ "dn"."bought_city" AS "bought_city",
+ "dn"."ss_ticket_number" AS "ss_ticket_number",
+ "dn"."amt" AS "amt",
+ "dn"."profit" AS "profit"
+FROM "dn" AS "dn"
+JOIN "customer_address_2" AS "current_addr"
+ ON "current_addr"."ca_city" <> "dn"."bought_city"
+JOIN "customer" AS "customer"
+ ON "customer"."c_current_addr_sk" = "current_addr"."ca_address_sk"
+ AND "dn"."ss_customer_sk" = "customer"."c_customer_sk"
+ORDER BY
+ "c_last_name",
+ "c_first_name",
+ "ca_city",
+ "bought_city",
+ "ss_ticket_number"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 47
+--------------------------------------
+WITH v1
+ AS (SELECT i_category,
+ i_brand,
+ s_store_name,
+ s_company_name,
+ d_year,
+ d_moy,
+ Sum(ss_sales_price) sum_sales,
+ Avg(Sum(ss_sales_price))
+ OVER (
+ partition BY i_category, i_brand, s_store_name,
+ s_company_name,
+ d_year)
+ avg_monthly_sales,
+ Rank()
+ OVER (
+ partition BY i_category, i_brand, s_store_name,
+ s_company_name
+ ORDER BY d_year, d_moy) rn
+ FROM item,
+ store_sales,
+ date_dim,
+ store
+ WHERE ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND ( d_year = 1999
+ OR ( d_year = 1999 - 1
+ AND d_moy = 12 )
+ OR ( d_year = 1999 + 1
+ AND d_moy = 1 ) )
+ GROUP BY i_category,
+ i_brand,
+ s_store_name,
+ s_company_name,
+ d_year,
+ d_moy),
+ v2
+ AS (SELECT v1.i_category,
+ v1.d_year,
+ v1.d_moy,
+ v1.avg_monthly_sales,
+ v1.sum_sales,
+ v1_lag.sum_sales psum,
+ v1_lead.sum_sales nsum
+ FROM v1,
+ v1 v1_lag,
+ v1 v1_lead
+ WHERE v1.i_category = v1_lag.i_category
+ AND v1.i_category = v1_lead.i_category
+ AND v1.i_brand = v1_lag.i_brand
+ AND v1.i_brand = v1_lead.i_brand
+ AND v1.s_store_name = v1_lag.s_store_name
+ AND v1.s_store_name = v1_lead.s_store_name
+ AND v1.s_company_name = v1_lag.s_company_name
+ AND v1.s_company_name = v1_lead.s_company_name
+ AND v1.rn = v1_lag.rn + 1
+ AND v1.rn = v1_lead.rn - 1)
+SELECT *
+FROM v2
+WHERE d_year = 1999
+ AND avg_monthly_sales > 0
+ AND CASE
+ WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales)
+ /
+ avg_monthly_sales
+ ELSE NULL
+ END > 0.1
+ORDER BY sum_sales - avg_monthly_sales,
+ 3
+LIMIT 100;
+WITH "v1" AS (
+ SELECT
+ "item"."i_category" AS "i_category",
+ "item"."i_brand" AS "i_brand",
+ "store"."s_store_name" AS "s_store_name",
+ "store"."s_company_name" AS "s_company_name",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy",
+ SUM("store_sales"."ss_sales_price") AS "sum_sales",
+ AVG(SUM("store_sales"."ss_sales_price")) OVER (PARTITION BY "item"."i_category", "item"."i_brand", "store"."s_store_name", "store"."s_company_name", "date_dim"."d_year") AS "avg_monthly_sales",
+ RANK() OVER (PARTITION BY "item"."i_category", "item"."i_brand", "store"."s_store_name", "store"."s_company_name" ORDER BY "date_dim"."d_year", "date_dim"."d_moy") AS "rn"
+ FROM "item" AS "item"
+ JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON (
+ "date_dim"."d_moy" = 1 OR "date_dim"."d_moy" = 12 OR "date_dim"."d_year" = 1999
+ )
+ AND (
+ "date_dim"."d_moy" = 1 OR "date_dim"."d_year" = 1998 OR "date_dim"."d_year" = 1999
+ )
+ AND (
+ "date_dim"."d_moy" = 12 OR "date_dim"."d_year" = 1999 OR "date_dim"."d_year" = 2000
+ )
+ AND (
+ "date_dim"."d_year" = 1998 OR "date_dim"."d_year" = 1999 OR "date_dim"."d_year" = 2000
+ )
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ GROUP BY
+ "item"."i_category",
+ "item"."i_brand",
+ "store"."s_store_name",
+ "store"."s_company_name",
+ "date_dim"."d_year",
+ "date_dim"."d_moy"
+)
+SELECT
+ "v1"."i_category" AS "i_category",
+ "v1"."d_year" AS "d_year",
+ "v1"."d_moy" AS "d_moy",
+ "v1"."avg_monthly_sales" AS "avg_monthly_sales",
+ "v1"."sum_sales" AS "sum_sales",
+ "v1_lag"."sum_sales" AS "psum",
+ "v1_lead"."sum_sales" AS "nsum"
+FROM "v1"
+JOIN "v1" AS "v1_lag"
+ ON "v1"."i_brand" = "v1_lag"."i_brand"
+ AND "v1"."i_category" = "v1_lag"."i_category"
+ AND "v1"."rn" = "v1_lag"."rn" + 1
+ AND "v1"."s_company_name" = "v1_lag"."s_company_name"
+ AND "v1"."s_store_name" = "v1_lag"."s_store_name"
+JOIN "v1" AS "v1_lead"
+ ON "v1"."i_brand" = "v1_lead"."i_brand"
+ AND "v1"."i_category" = "v1_lead"."i_category"
+ AND "v1"."rn" = "v1_lead"."rn" - 1
+ AND "v1"."s_company_name" = "v1_lead"."s_company_name"
+ AND "v1"."s_store_name" = "v1_lead"."s_store_name"
+WHERE
+ "v1"."avg_monthly_sales" > 0
+ AND "v1"."d_year" = 1999
+ AND CASE
+ WHEN "v1"."avg_monthly_sales" > 0
+ THEN ABS("v1"."sum_sales" - "v1"."avg_monthly_sales") / "v1"."avg_monthly_sales"
+ ELSE NULL
+ END > 0.1
+ORDER BY
+ "v1"."sum_sales" - "v1"."avg_monthly_sales",
+ "v1"."d_moy"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 48
+--------------------------------------
+SELECT Sum (ss_quantity)
+FROM store_sales,
+ store,
+ customer_demographics,
+ customer_address,
+ date_dim
+WHERE s_store_sk = ss_store_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND ( ( cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'W'
+ AND cd_education_status = 'Secondary'
+ AND ss_sales_price BETWEEN 100.00 AND 150.00 )
+ OR ( cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'M'
+ AND cd_education_status = 'Advanced Degree'
+ AND ss_sales_price BETWEEN 50.00 AND 100.00 )
+ OR ( cd_demo_sk = ss_cdemo_sk
+ AND cd_marital_status = 'D'
+ AND cd_education_status = '2 yr Degree'
+ AND ss_sales_price BETWEEN 150.00 AND 200.00 ) )
+ AND ( ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'TX', 'NE', 'MO' )
+ AND ss_net_profit BETWEEN 0 AND 2000 )
+ OR ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'CO', 'TN', 'ND' )
+ AND ss_net_profit BETWEEN 150 AND 3000 )
+ OR ( ss_addr_sk = ca_address_sk
+ AND ca_country = 'United States'
+ AND ca_state IN ( 'OK', 'PA', 'CA' )
+ AND ss_net_profit BETWEEN 50 AND 25000 ) );
+SELECT
+ SUM("store_sales"."ss_quantity") AS "_col_0"
+FROM "store_sales" AS "store_sales"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON (
+ "customer_demographics"."cd_demo_sk" = "store_sales"."ss_cdemo_sk"
+ AND "customer_demographics"."cd_education_status" = '2 yr Degree'
+ AND "customer_demographics"."cd_marital_status" = 'D'
+ AND "store_sales"."ss_sales_price" <= 200.00
+ AND "store_sales"."ss_sales_price" >= 150.00
+ )
+ OR (
+ "customer_demographics"."cd_demo_sk" = "store_sales"."ss_cdemo_sk"
+ AND "customer_demographics"."cd_education_status" = 'Advanced Degree'
+ AND "customer_demographics"."cd_marital_status" = 'M'
+ AND "store_sales"."ss_sales_price" <= 100.00
+ AND "store_sales"."ss_sales_price" >= 50.00
+ )
+ OR (
+ "customer_demographics"."cd_demo_sk" = "store_sales"."ss_cdemo_sk"
+ AND "customer_demographics"."cd_education_status" = 'Secondary'
+ AND "customer_demographics"."cd_marital_status" = 'W'
+ AND "store_sales"."ss_sales_price" <= 150.00
+ AND "store_sales"."ss_sales_price" >= 100.00
+ )
+JOIN "customer_address" AS "customer_address"
+ ON (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('CO', 'TN', 'ND')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 3000
+ AND "store_sales"."ss_net_profit" >= 150
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('OK', 'PA', 'CA')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 25000
+ AND "store_sales"."ss_net_profit" >= 50
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('TX', 'NE', 'MO')
+ AND "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ AND "store_sales"."ss_net_profit" <= 2000
+ AND "store_sales"."ss_net_profit" >= 0
+ )
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 1999
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk";
+
+--------------------------------------
+-- TPC-DS 49
+--------------------------------------
+SELECT 'web' AS channel,
+ web.item,
+ web.return_ratio,
+ web.return_rank,
+ web.currency_rank
+FROM (SELECT item,
+ return_ratio,
+ currency_ratio,
+ Rank()
+ OVER (
+ ORDER BY return_ratio) AS return_rank,
+ Rank()
+ OVER (
+ ORDER BY currency_ratio) AS currency_rank
+ FROM (SELECT ws.ws_item_sk AS
+ item,
+ ( Cast(Sum(COALESCE(wr.wr_return_quantity, 0)) AS DEC(15,
+ 4)) /
+ Cast(
+ Sum(COALESCE(ws.ws_quantity, 0)) AS DEC(15, 4)) ) AS
+ return_ratio,
+ ( Cast(Sum(COALESCE(wr.wr_return_amt, 0)) AS DEC(15, 4))
+ / Cast(
+ Sum(
+ COALESCE(ws.ws_net_paid, 0)) AS DEC(15,
+ 4)) ) AS
+ currency_ratio
+ FROM web_sales ws
+ LEFT OUTER JOIN web_returns wr
+ ON ( ws.ws_order_number = wr.wr_order_number
+ AND ws.ws_item_sk = wr.wr_item_sk ),
+ date_dim
+ WHERE wr.wr_return_amt > 10000
+ AND ws.ws_net_profit > 1
+ AND ws.ws_net_paid > 0
+ AND ws.ws_quantity > 0
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 12
+ GROUP BY ws.ws_item_sk) in_web) web
+WHERE ( web.return_rank <= 10
+ OR web.currency_rank <= 10 )
+UNION
+SELECT 'catalog' AS channel,
+ catalog.item,
+ catalog.return_ratio,
+ catalog.return_rank,
+ catalog.currency_rank
+FROM (SELECT item,
+ return_ratio,
+ currency_ratio,
+ Rank()
+ OVER (
+ ORDER BY return_ratio) AS return_rank,
+ Rank()
+ OVER (
+ ORDER BY currency_ratio) AS currency_rank
+ FROM (SELECT cs.cs_item_sk AS
+ item,
+ ( Cast(Sum(COALESCE(cr.cr_return_quantity, 0)) AS DEC(15,
+ 4)) /
+ Cast(
+ Sum(COALESCE(cs.cs_quantity, 0)) AS DEC(15, 4)) ) AS
+ return_ratio,
+ ( Cast(Sum(COALESCE(cr.cr_return_amount, 0)) AS DEC(15, 4
+ )) /
+ Cast(Sum(
+ COALESCE(cs.cs_net_paid, 0)) AS DEC(
+ 15, 4)) ) AS
+ currency_ratio
+ FROM catalog_sales cs
+ LEFT OUTER JOIN catalog_returns cr
+ ON ( cs.cs_order_number = cr.cr_order_number
+ AND cs.cs_item_sk = cr.cr_item_sk ),
+ date_dim
+ WHERE cr.cr_return_amount > 10000
+ AND cs.cs_net_profit > 1
+ AND cs.cs_net_paid > 0
+ AND cs.cs_quantity > 0
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 12
+ GROUP BY cs.cs_item_sk) in_cat) catalog
+WHERE ( catalog.return_rank <= 10
+ OR catalog.currency_rank <= 10 )
+UNION
+SELECT 'store' AS channel,
+ store.item,
+ store.return_ratio,
+ store.return_rank,
+ store.currency_rank
+FROM (SELECT item,
+ return_ratio,
+ currency_ratio,
+ Rank()
+ OVER (
+ ORDER BY return_ratio) AS return_rank,
+ Rank()
+ OVER (
+ ORDER BY currency_ratio) AS currency_rank
+ FROM (SELECT sts.ss_item_sk AS
+ item,
+ ( Cast(Sum(COALESCE(sr.sr_return_quantity, 0)) AS DEC(15,
+ 4)) /
+ Cast(
+ Sum(COALESCE(sts.ss_quantity, 0)) AS DEC(15, 4)) ) AS
+ return_ratio,
+ ( Cast(Sum(COALESCE(sr.sr_return_amt, 0)) AS DEC(15, 4))
+ / Cast(
+ Sum(
+ COALESCE(sts.ss_net_paid, 0)) AS DEC(15, 4)) ) AS
+ currency_ratio
+ FROM store_sales sts
+ LEFT OUTER JOIN store_returns sr
+ ON ( sts.ss_ticket_number =
+ sr.sr_ticket_number
+ AND sts.ss_item_sk = sr.sr_item_sk ),
+ date_dim
+ WHERE sr.sr_return_amt > 10000
+ AND sts.ss_net_profit > 1
+ AND sts.ss_net_paid > 0
+ AND sts.ss_quantity > 0
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 12
+ GROUP BY sts.ss_item_sk) in_store) store
+WHERE ( store.return_rank <= 10
+ OR store.currency_rank <= 10 )
+ORDER BY 1,
+ 4,
+ 5
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 12 AND "date_dim"."d_year" = 1999
+), "in_web" AS (
+ SELECT
+ "web_sales"."ws_item_sk" AS "item",
+ CAST(SUM(COALESCE("web_returns"."wr_return_quantity", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("web_sales"."ws_quantity", 0)) AS DECIMAL(15, 4)) AS "return_ratio",
+ CAST(SUM(COALESCE("web_returns"."wr_return_amt", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("web_sales"."ws_net_paid", 0)) AS DECIMAL(15, 4)) AS "currency_ratio"
+ FROM "web_sales" AS "web_sales"
+ LEFT JOIN "web_returns" AS "web_returns"
+ ON "web_sales"."ws_item_sk" = "web_returns"."wr_item_sk"
+ AND "web_sales"."ws_order_number" = "web_returns"."wr_order_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "web_returns"."wr_return_amt" > 10000
+ AND "web_sales"."ws_net_paid" > 0
+ AND "web_sales"."ws_net_profit" > 1
+ AND "web_sales"."ws_quantity" > 0
+ GROUP BY
+ "web_sales"."ws_item_sk"
+), "web" AS (
+ SELECT
+ "in_web"."item" AS "item",
+ "in_web"."return_ratio" AS "return_ratio",
+ RANK() OVER (ORDER BY "in_web"."return_ratio") AS "return_rank",
+ RANK() OVER (ORDER BY "in_web"."currency_ratio") AS "currency_rank"
+ FROM "in_web" AS "in_web"
+), "in_cat" AS (
+ SELECT
+ "catalog_sales"."cs_item_sk" AS "item",
+ CAST(SUM(COALESCE("catalog_returns"."cr_return_quantity", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("catalog_sales"."cs_quantity", 0)) AS DECIMAL(15, 4)) AS "return_ratio",
+ CAST(SUM(COALESCE("catalog_returns"."cr_return_amount", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("catalog_sales"."cs_net_paid", 0)) AS DECIMAL(15, 4)) AS "currency_ratio"
+ FROM "catalog_sales" AS "catalog_sales"
+ LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ AND "catalog_sales"."cs_order_number" = "catalog_returns"."cr_order_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "catalog_returns"."cr_return_amount" > 10000
+ AND "catalog_sales"."cs_net_paid" > 0
+ AND "catalog_sales"."cs_net_profit" > 1
+ AND "catalog_sales"."cs_quantity" > 0
+ GROUP BY
+ "catalog_sales"."cs_item_sk"
+), "catalog" AS (
+ SELECT
+ "in_cat"."item" AS "item",
+ "in_cat"."return_ratio" AS "return_ratio",
+ RANK() OVER (ORDER BY "in_cat"."return_ratio") AS "return_rank",
+ RANK() OVER (ORDER BY "in_cat"."currency_ratio") AS "currency_rank"
+ FROM "in_cat" AS "in_cat"
+), "in_store" AS (
+ SELECT
+ "store_sales"."ss_item_sk" AS "item",
+ CAST(SUM(COALESCE("store_returns"."sr_return_quantity", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("store_sales"."ss_quantity", 0)) AS DECIMAL(15, 4)) AS "return_ratio",
+ CAST(SUM(COALESCE("store_returns"."sr_return_amt", 0)) AS DECIMAL(15, 4)) / CAST(SUM(COALESCE("store_sales"."ss_net_paid", 0)) AS DECIMAL(15, 4)) AS "currency_ratio"
+ FROM "store_sales" AS "store_sales"
+ LEFT JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "store_returns"."sr_return_amt" > 10000
+ AND "store_sales"."ss_net_paid" > 0
+ AND "store_sales"."ss_net_profit" > 1
+ AND "store_sales"."ss_quantity" > 0
+ GROUP BY
+ "store_sales"."ss_item_sk"
+), "store" AS (
+ SELECT
+ "in_store"."item" AS "item",
+ "in_store"."return_ratio" AS "return_ratio",
+ RANK() OVER (ORDER BY "in_store"."return_ratio") AS "return_rank",
+ RANK() OVER (ORDER BY "in_store"."currency_ratio") AS "currency_rank"
+ FROM "in_store" AS "in_store"
+), "cte_3" AS (
+ SELECT
+ 'store' AS "channel",
+ "store"."item" AS "item",
+ "store"."return_ratio" AS "return_ratio",
+ "store"."return_rank" AS "return_rank",
+ "store"."currency_rank" AS "currency_rank"
+ FROM "store" AS "store"
+ WHERE
+ "store"."currency_rank" <= 10 OR "store"."return_rank" <= 10
+ ORDER BY
+ 'store',
+ "store"."return_rank",
+ "store"."currency_rank"
+ LIMIT 100
+), "cte_4" AS (
+ SELECT
+ 'catalog' AS "channel",
+ "catalog"."item" AS "item",
+ "catalog"."return_ratio" AS "return_ratio",
+ "catalog"."return_rank" AS "return_rank",
+ "catalog"."currency_rank" AS "currency_rank"
+ FROM "catalog" AS "catalog"
+ WHERE
+ "catalog"."currency_rank" <= 10 OR "catalog"."return_rank" <= 10
+ UNION
+ SELECT
+ "cte_3"."channel" AS "channel",
+ "cte_3"."item" AS "item",
+ "cte_3"."return_ratio" AS "return_ratio",
+ "cte_3"."return_rank" AS "return_rank",
+ "cte_3"."currency_rank" AS "currency_rank"
+ FROM "cte_3" AS "cte_3"
+)
+SELECT
+ 'web' AS "channel",
+ "web"."item" AS "item",
+ "web"."return_ratio" AS "return_ratio",
+ "web"."return_rank" AS "return_rank",
+ "web"."currency_rank" AS "currency_rank"
+FROM "web" AS "web"
+WHERE
+ "web"."currency_rank" <= 10 OR "web"."return_rank" <= 10
+UNION
+SELECT
+ "cte_4"."channel" AS "channel",
+ "cte_4"."item" AS "item",
+ "cte_4"."return_ratio" AS "return_ratio",
+ "cte_4"."return_rank" AS "return_rank",
+ "cte_4"."currency_rank" AS "currency_rank"
+FROM "cte_4" AS "cte_4";
+
+--------------------------------------
+-- TPC-DS 50
+--------------------------------------
+SELECT s_store_name,
+ s_company_id,
+ s_street_number,
+ s_street_name,
+ s_street_type,
+ s_suite_number,
+ s_city,
+ s_county,
+ s_state,
+ s_zip,
+ Sum(CASE
+ WHEN ( sr_returned_date_sk - ss_sold_date_sk <= 30 ) THEN 1
+ ELSE 0
+ END) AS "30 days",
+ Sum(CASE
+ WHEN ( sr_returned_date_sk - ss_sold_date_sk > 30 )
+ AND ( sr_returned_date_sk - ss_sold_date_sk <= 60 )
+ THEN 1
+ ELSE 0
+ END) AS "31-60 days",
+ Sum(CASE
+ WHEN ( sr_returned_date_sk - ss_sold_date_sk > 60 )
+ AND ( sr_returned_date_sk - ss_sold_date_sk <= 90 )
+ THEN 1
+ ELSE 0
+ END) AS "61-90 days",
+ Sum(CASE
+ WHEN ( sr_returned_date_sk - ss_sold_date_sk > 90 )
+ AND ( sr_returned_date_sk - ss_sold_date_sk <= 120 )
+ THEN 1
+ ELSE 0
+ END) AS "91-120 days",
+ Sum(CASE
+ WHEN ( sr_returned_date_sk - ss_sold_date_sk > 120 ) THEN 1
+ ELSE 0
+ END) AS ">120 days"
+FROM store_sales,
+ store_returns,
+ store,
+ date_dim d1,
+ date_dim d2
+WHERE d2.d_year = 2002
+ AND d2.d_moy = 9
+ AND ss_ticket_number = sr_ticket_number
+ AND ss_item_sk = sr_item_sk
+ AND ss_sold_date_sk = d1.d_date_sk
+ AND sr_returned_date_sk = d2.d_date_sk
+ AND ss_customer_sk = sr_customer_sk
+ AND ss_store_sk = s_store_sk
+GROUP BY s_store_name,
+ s_company_id,
+ s_street_number,
+ s_street_name,
+ s_street_type,
+ s_suite_number,
+ s_city,
+ s_county,
+ s_state,
+ s_zip
+ORDER BY s_store_name,
+ s_company_id,
+ s_street_number,
+ s_street_name,
+ s_street_type,
+ s_suite_number,
+ s_city,
+ s_county,
+ s_state,
+ s_zip
+LIMIT 100;
+SELECT
+ "store"."s_store_name" AS "s_store_name",
+ "store"."s_company_id" AS "s_company_id",
+ "store"."s_street_number" AS "s_street_number",
+ "store"."s_street_name" AS "s_street_name",
+ "store"."s_street_type" AS "s_street_type",
+ "store"."s_suite_number" AS "s_suite_number",
+ "store"."s_city" AS "s_city",
+ "store"."s_county" AS "s_county",
+ "store"."s_state" AS "s_state",
+ "store"."s_zip" AS "s_zip",
+ SUM(
+ CASE
+ WHEN "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" <= 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "30 days",
+ SUM(
+ CASE
+ WHEN "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" <= 60
+ AND "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" > 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "31-60 days",
+ SUM(
+ CASE
+ WHEN "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" <= 90
+ AND "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" > 60
+ THEN 1
+ ELSE 0
+ END
+ ) AS "61-90 days",
+ SUM(
+ CASE
+ WHEN "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" <= 120
+ AND "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" > 90
+ THEN 1
+ ELSE 0
+ END
+ ) AS "91-120 days",
+ SUM(
+ CASE
+ WHEN "store_returns"."sr_returned_date_sk" - "store_sales"."ss_sold_date_sk" > 120
+ THEN 1
+ ELSE 0
+ END
+ ) AS ">120 days"
+FROM "store_sales" AS "store_sales"
+JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_customer_sk" = "store_returns"."sr_customer_sk"
+ AND "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "date_dim" AS "date_dim_2"
+ ON "date_dim_2"."d_moy" = 9
+ AND "date_dim_2"."d_year" = 2002
+ AND "store_returns"."sr_returned_date_sk" = "date_dim_2"."d_date_sk"
+GROUP BY
+ "store"."s_store_name",
+ "store"."s_company_id",
+ "store"."s_street_number",
+ "store"."s_street_name",
+ "store"."s_street_type",
+ "store"."s_suite_number",
+ "store"."s_city",
+ "store"."s_county",
+ "store"."s_state",
+ "store"."s_zip"
+ORDER BY
+ "s_store_name",
+ "s_company_id",
+ "s_street_number",
+ "s_street_name",
+ "s_street_type",
+ "s_suite_number",
+ "s_city",
+ "s_county",
+ "s_state",
+ "s_zip"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 51
+--------------------------------------
+WITH web_v1 AS
+(
+ SELECT ws_item_sk item_sk,
+ d_date,
+ sum(Sum(ws_sales_price)) OVER (partition BY ws_item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) cume_sales
+ FROM web_sales ,
+ date_dim
+ WHERE ws_sold_date_sk=d_date_sk
+ AND d_month_seq BETWEEN 1192 AND 1192+11
+ AND ws_item_sk IS NOT NULL
+ GROUP BY ws_item_sk,
+ d_date), store_v1 AS
+(
+ SELECT ss_item_sk item_sk,
+ d_date,
+ sum(sum(ss_sales_price)) OVER (partition BY ss_item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) cume_sales
+ FROM store_sales ,
+ date_dim
+ WHERE ss_sold_date_sk=d_date_sk
+ AND d_month_seq BETWEEN 1192 AND 1192+11
+ AND ss_item_sk IS NOT NULL
+ GROUP BY ss_item_sk,
+ d_date)
+SELECT
+ *
+FROM (
+ SELECT item_sk ,
+ d_date ,
+ web_sales ,
+ store_sales ,
+ max(web_sales) OVER (partition BY item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) web_cumulative ,
+ max(store_sales) OVER (partition BY item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) store_cumulative
+ FROM (
+ SELECT
+ CASE
+ WHEN web.item_sk IS NOT NULL THEN web.item_sk
+ ELSE store.item_sk
+ END item_sk ,
+ CASE
+ WHEN web.d_date IS NOT NULL THEN web.d_date
+ ELSE store.d_date
+ END d_date ,
+ web.cume_sales web_sales ,
+ store.cume_sales store_sales
+ FROM web_v1 web
+ FULL OUTER JOIN store_v1 store
+ ON (
+ web.item_sk = store.item_sk
+ AND web.d_date = store.d_date) )x )y
+WHERE web_cumulative > store_cumulative
+ORDER BY item_sk ,
+ d_date
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1203 AND "date_dim"."d_month_seq" >= 1192
+), "web_v1" AS (
+ SELECT
+ "web_sales"."ws_item_sk" AS "item_sk",
+ "date_dim"."d_date" AS "d_date",
+ SUM(SUM("web_sales"."ws_sales_price")) OVER (PARTITION BY "web_sales"."ws_item_sk" ORDER BY "date_dim"."d_date" rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) AS "cume_sales"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "web_sales"."ws_item_sk" IS NULL
+ GROUP BY
+ "web_sales"."ws_item_sk",
+ "date_dim"."d_date"
+), "store_v1" AS (
+ SELECT
+ "store_sales"."ss_item_sk" AS "item_sk",
+ "date_dim"."d_date" AS "d_date",
+ SUM(SUM("store_sales"."ss_sales_price")) OVER (PARTITION BY "store_sales"."ss_item_sk" ORDER BY "date_dim"."d_date" rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) AS "cume_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ NOT "store_sales"."ss_item_sk" IS NULL
+ GROUP BY
+ "store_sales"."ss_item_sk",
+ "date_dim"."d_date"
+), "y" AS (
+ SELECT
+ CASE
+ WHEN NOT "web"."item_sk" IS NULL
+ THEN "web"."item_sk"
+ ELSE "store"."item_sk"
+ END AS "item_sk",
+ CASE WHEN NOT "web"."d_date" IS NULL THEN "web"."d_date" ELSE "store"."d_date" END AS "d_date",
+ "web"."cume_sales" AS "web_sales",
+ "store"."cume_sales" AS "store_sales",
+ MAX("web"."cume_sales") OVER (PARTITION BY CASE
+ WHEN NOT "web"."item_sk" IS NULL
+ THEN "web"."item_sk"
+ ELSE "store"."item_sk"
+ END ORDER BY CASE WHEN NOT "web"."d_date" IS NULL THEN "web"."d_date" ELSE "store"."d_date" END rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) AS "web_cumulative",
+ MAX("store"."cume_sales") OVER (PARTITION BY CASE
+ WHEN NOT "web"."item_sk" IS NULL
+ THEN "web"."item_sk"
+ ELSE "store"."item_sk"
+ END ORDER BY CASE WHEN NOT "web"."d_date" IS NULL THEN "web"."d_date" ELSE "store"."d_date" END rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) AS "store_cumulative"
+ FROM "web_v1" AS "web"
+ FULL JOIN "store_v1" AS "store"
+ ON "web"."d_date" = "store"."d_date" AND "web"."item_sk" = "store"."item_sk"
+)
+SELECT
+ "y"."item_sk" AS "item_sk",
+ "y"."d_date" AS "d_date",
+ "y"."web_sales" AS "web_sales",
+ "y"."store_sales" AS "store_sales",
+ "y"."web_cumulative" AS "web_cumulative",
+ "y"."store_cumulative" AS "store_cumulative"
+FROM "y" AS "y"
+WHERE
+ "y"."web_cumulative" > "y"."store_cumulative"
+ORDER BY
+ "y"."item_sk",
+ "y"."d_date"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 52
+--------------------------------------
+SELECT dt.d_year,
+ item.i_brand_id brand_id,
+ item.i_brand brand,
+ Sum(ss_ext_sales_price) ext_price
+FROM date_dim dt,
+ store_sales,
+ item
+WHERE dt.d_date_sk = store_sales.ss_sold_date_sk
+ AND store_sales.ss_item_sk = item.i_item_sk
+ AND item.i_manager_id = 1
+ AND dt.d_moy = 11
+ AND dt.d_year = 1999
+GROUP BY dt.d_year,
+ item.i_brand,
+ item.i_brand_id
+ORDER BY dt.d_year,
+ ext_price DESC,
+ brand_id
+LIMIT 100;
+SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_brand_id" AS "brand_id",
+ "item"."i_brand" AS "brand",
+ SUM("store_sales"."ss_ext_sales_price") AS "ext_price"
+FROM "date_dim" AS "date_dim"
+JOIN "store_sales" AS "store_sales"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+JOIN "item" AS "item"
+ ON "item"."i_manager_id" = 1 AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+WHERE
+ "date_dim"."d_moy" = 11 AND "date_dim"."d_year" = 1999
+GROUP BY
+ "date_dim"."d_year",
+ "item"."i_brand",
+ "item"."i_brand_id"
+ORDER BY
+ "date_dim"."d_year",
+ "ext_price" DESC,
+ "brand_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 53
+--------------------------------------
+SELECT *
+FROM (SELECT i_manufact_id,
+ Sum(ss_sales_price) sum_sales,
+ Avg(Sum(ss_sales_price))
+ OVER (
+ partition BY i_manufact_id) avg_quarterly_sales
+ FROM item,
+ store_sales,
+ date_dim,
+ store
+ WHERE ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND d_month_seq IN ( 1199, 1199 + 1, 1199 + 2, 1199 + 3,
+ 1199 + 4, 1199 + 5, 1199 + 6, 1199 + 7,
+ 1199 + 8, 1199 + 9, 1199 + 10, 1199 + 11 )
+ AND ( ( i_category IN ( 'Books', 'Children', 'Electronics' )
+ AND i_class IN ( 'personal', 'portable', 'reference',
+ 'self-help' )
+ AND i_brand IN ( 'scholaramalgamalg #14',
+ 'scholaramalgamalg #7'
+ ,
+ 'exportiunivamalg #9',
+ 'scholaramalgamalg #9' )
+ )
+ OR ( i_category IN ( 'Women', 'Music', 'Men' )
+ AND i_class IN ( 'accessories', 'classical',
+ 'fragrances',
+ 'pants' )
+ AND i_brand IN ( 'amalgimporto #1',
+ 'edu packscholar #1',
+ 'exportiimporto #1',
+ 'importoamalg #1' ) ) )
+ GROUP BY i_manufact_id,
+ d_qoy) tmp1
+WHERE CASE
+ WHEN avg_quarterly_sales > 0 THEN Abs (sum_sales - avg_quarterly_sales)
+ /
+ avg_quarterly_sales
+ ELSE NULL
+ END > 0.1
+ORDER BY avg_quarterly_sales,
+ sum_sales,
+ i_manufact_id
+LIMIT 100;
+WITH "tmp1" AS (
+ SELECT
+ "item"."i_manufact_id" AS "i_manufact_id",
+ SUM("store_sales"."ss_sales_price") AS "sum_sales",
+ AVG(SUM("store_sales"."ss_sales_price")) OVER (PARTITION BY "item"."i_manufact_id") AS "avg_quarterly_sales"
+ FROM "item" AS "item"
+ JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" IN (1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ WHERE
+ (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_brand" IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')
+ )
+ AND (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ )
+ AND (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ AND (
+ "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ OR "item"."i_category" IN ('Women', 'Music', 'Men')
+ )
+ AND (
+ "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ OR "item"."i_class" IN ('accessories', 'classical', 'fragrances', 'pants')
+ )
+ AND (
+ "item"."i_category" IN ('Women', 'Music', 'Men')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ AND (
+ "item"."i_class" IN ('accessories', 'classical', 'fragrances', 'pants')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ GROUP BY
+ "item"."i_manufact_id",
+ "date_dim"."d_qoy"
+)
+SELECT
+ "tmp1"."i_manufact_id" AS "i_manufact_id",
+ "tmp1"."sum_sales" AS "sum_sales",
+ "tmp1"."avg_quarterly_sales" AS "avg_quarterly_sales"
+FROM "tmp1" AS "tmp1"
+WHERE
+ CASE
+ WHEN "tmp1"."avg_quarterly_sales" > 0
+ THEN ABS("tmp1"."sum_sales" - "tmp1"."avg_quarterly_sales") / "tmp1"."avg_quarterly_sales"
+ ELSE NULL
+ END > 0.1
+ORDER BY
+ "tmp1"."avg_quarterly_sales",
+ "tmp1"."sum_sales",
+ "tmp1"."i_manufact_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 54
+--------------------------------------
+WITH my_customers
+ AS (SELECT DISTINCT c_customer_sk,
+ c_current_addr_sk
+ FROM (SELECT cs_sold_date_sk sold_date_sk,
+ cs_bill_customer_sk customer_sk,
+ cs_item_sk item_sk
+ FROM catalog_sales
+ UNION ALL
+ SELECT ws_sold_date_sk sold_date_sk,
+ ws_bill_customer_sk customer_sk,
+ ws_item_sk item_sk
+ FROM web_sales) cs_or_ws_sales,
+ item,
+ date_dim,
+ customer
+ WHERE sold_date_sk = d_date_sk
+ AND item_sk = i_item_sk
+ AND i_category = 'Sports'
+ AND i_class = 'fitness'
+ AND c_customer_sk = cs_or_ws_sales.customer_sk
+ AND d_moy = 5
+ AND d_year = 2000),
+ my_revenue
+ AS (SELECT c_customer_sk,
+ Sum(ss_ext_sales_price) AS revenue
+ FROM my_customers,
+ store_sales,
+ customer_address,
+ store,
+ date_dim
+ WHERE c_current_addr_sk = ca_address_sk
+ AND ca_county = s_county
+ AND ca_state = s_state
+ AND ss_sold_date_sk = d_date_sk
+ AND c_customer_sk = ss_customer_sk
+ AND d_month_seq BETWEEN (SELECT DISTINCT d_month_seq + 1
+ FROM date_dim
+ WHERE d_year = 2000
+ AND d_moy = 5) AND
+ (SELECT DISTINCT
+ d_month_seq + 3
+ FROM date_dim
+ WHERE d_year = 2000
+ AND d_moy = 5)
+ GROUP BY c_customer_sk),
+ segments
+ AS (SELECT Cast(( revenue / 50 ) AS INT) AS segment
+ FROM my_revenue)
+SELECT segment,
+ Count(*) AS num_customers,
+ segment * 50 AS segment_base
+FROM segments
+GROUP BY segment
+ORDER BY segment,
+ num_customers
+LIMIT 100;
+WITH "cs_or_ws_sales" AS (
+ SELECT
+ "catalog_sales"."cs_sold_date_sk" AS "sold_date_sk",
+ "catalog_sales"."cs_bill_customer_sk" AS "customer_sk",
+ "catalog_sales"."cs_item_sk" AS "item_sk"
+ FROM "catalog_sales" AS "catalog_sales"
+ UNION ALL
+ SELECT
+ "web_sales"."ws_sold_date_sk" AS "sold_date_sk",
+ "web_sales"."ws_bill_customer_sk" AS "customer_sk",
+ "web_sales"."ws_item_sk" AS "item_sk"
+ FROM "web_sales" AS "web_sales"
+), "my_customers" AS (
+ SELECT DISTINCT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_current_addr_sk" AS "c_current_addr_sk"
+ FROM "cs_or_ws_sales" AS "cs_or_ws_sales"
+ JOIN "item" AS "item"
+ ON "cs_or_ws_sales"."item_sk" = "item"."i_item_sk"
+ AND "item"."i_category" = 'Sports'
+ AND "item"."i_class" = 'fitness'
+ JOIN "date_dim" AS "date_dim"
+ ON "cs_or_ws_sales"."sold_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_moy" = 5
+ AND "date_dim"."d_year" = 2000
+ JOIN "customer" AS "customer"
+ ON "customer"."c_customer_sk" = "cs_or_ws_sales"."customer_sk"
+), "_u_0" AS (
+ SELECT DISTINCT
+ "date_dim"."d_month_seq" + 1 AS "_col_0"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 5 AND "date_dim"."d_year" = 2000
+), "_u_1" AS (
+ SELECT DISTINCT
+ "date_dim"."d_month_seq" + 3 AS "_col_0"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 5 AND "date_dim"."d_year" = 2000
+), "my_revenue" AS (
+ SELECT
+ SUM("store_sales"."ss_ext_sales_price") AS "revenue"
+ FROM "my_customers"
+ CROSS JOIN "date_dim" AS "date_dim"
+ JOIN "_u_0" AS "_u_0"
+ ON "date_dim"."d_month_seq" >= "_u_0"."_col_0"
+ JOIN "_u_1" AS "_u_1"
+ ON "date_dim"."d_month_seq" <= "_u_1"."_col_0"
+ JOIN "store_sales" AS "store_sales"
+ ON "my_customers"."c_customer_sk" = "store_sales"."ss_customer_sk"
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address" AS "customer_address"
+ ON "my_customers"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+ JOIN "store" AS "store"
+ ON "customer_address"."ca_county" = "store"."s_county"
+ AND "customer_address"."ca_state" = "store"."s_state"
+ GROUP BY
+ "my_customers"."c_customer_sk"
+)
+SELECT
+ CAST((
+ "my_revenue"."revenue" / 50
+ ) AS INT) AS "segment",
+ COUNT(*) AS "num_customers",
+ CAST((
+ "my_revenue"."revenue" / 50
+ ) AS INT) * 50 AS "segment_base"
+FROM "my_revenue"
+GROUP BY
+ CAST((
+ "my_revenue"."revenue" / 50
+ ) AS INT)
+ORDER BY
+ "segment",
+ "num_customers"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 55
+--------------------------------------
+SELECT i_brand_id brand_id,
+ i_brand brand,
+ Sum(ss_ext_sales_price) ext_price
+FROM date_dim,
+ store_sales,
+ item
+WHERE d_date_sk = ss_sold_date_sk
+ AND ss_item_sk = i_item_sk
+ AND i_manager_id = 33
+ AND d_moy = 12
+ AND d_year = 1998
+GROUP BY i_brand,
+ i_brand_id
+ORDER BY ext_price DESC,
+ i_brand_id
+LIMIT 100;
+SELECT
+ "item"."i_brand_id" AS "brand_id",
+ "item"."i_brand" AS "brand",
+ SUM("store_sales"."ss_ext_sales_price") AS "ext_price"
+FROM "date_dim" AS "date_dim"
+JOIN "store_sales" AS "store_sales"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+JOIN "item" AS "item"
+ ON "item"."i_manager_id" = 33 AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+WHERE
+ "date_dim"."d_moy" = 12 AND "date_dim"."d_year" = 1998
+GROUP BY
+ "item"."i_brand",
+ "item"."i_brand_id"
+ORDER BY
+ "ext_price" DESC,
+ "item"."i_brand_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 56
+--------------------------------------
+WITH ss
+ AS (SELECT i_item_id,
+ Sum(ss_ext_sales_price) total_sales
+ FROM store_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_color IN ( 'firebrick', 'rosy', 'white' )
+ )
+ AND ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1998
+ AND d_moy = 3
+ AND ss_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id),
+ cs
+ AS (SELECT i_item_id,
+ Sum(cs_ext_sales_price) total_sales
+ FROM catalog_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_color IN ( 'firebrick', 'rosy', 'white' )
+ )
+ AND cs_item_sk = i_item_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 1998
+ AND d_moy = 3
+ AND cs_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id),
+ ws
+ AS (SELECT i_item_id,
+ Sum(ws_ext_sales_price) total_sales
+ FROM web_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_color IN ( 'firebrick', 'rosy', 'white' )
+ )
+ AND ws_item_sk = i_item_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 1998
+ AND d_moy = 3
+ AND ws_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id)
+SELECT i_item_id,
+ Sum(total_sales) total_sales
+FROM (SELECT *
+ FROM ss
+ UNION ALL
+ SELECT *
+ FROM cs
+ UNION ALL
+ SELECT *
+ FROM ws) tmp1
+GROUP BY i_item_id
+ORDER BY total_sales
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+), "_u_0" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_color" IN ('firebrick', 'rosy', 'white')
+ GROUP BY
+ "item"."i_item_id"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 3 AND "date_dim"."d_year" = 1998
+), "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_gmt_offset" AS "ca_gmt_offset"
+ FROM "customer_address" AS "customer_address"
+ WHERE
+ "customer_address"."ca_gmt_offset" = -6
+), "ss" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("store_sales"."ss_ext_sales_price") AS "total_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_0"
+ ON "item"."i_item_id" = "_u_0"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_0"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "cs" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "total_sales"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_1"
+ ON "item"."i_item_id" = "_u_1"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "catalog_sales"."cs_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_1"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "ws" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("web_sales"."ws_ext_sales_price") AS "total_sales"
+ FROM "web_sales" AS "web_sales"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_2"
+ ON "item"."i_item_id" = "_u_2"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "web_sales"."ws_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_2"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "cte_4" AS (
+ SELECT
+ "cs"."i_item_id" AS "i_item_id",
+ "cs"."total_sales" AS "total_sales"
+ FROM "cs"
+ UNION ALL
+ SELECT
+ "ws"."i_item_id" AS "i_item_id",
+ "ws"."total_sales" AS "total_sales"
+ FROM "ws"
+), "tmp1" AS (
+ SELECT
+ "ss"."i_item_id" AS "i_item_id",
+ "ss"."total_sales" AS "total_sales"
+ FROM "ss"
+ UNION ALL
+ SELECT
+ "cte_4"."i_item_id" AS "i_item_id",
+ "cte_4"."total_sales" AS "total_sales"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "tmp1"."i_item_id" AS "i_item_id",
+ SUM("tmp1"."total_sales") AS "total_sales"
+FROM "tmp1" AS "tmp1"
+GROUP BY
+ "tmp1"."i_item_id"
+ORDER BY
+ "total_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 57
+--------------------------------------
+WITH v1
+ AS (SELECT i_category,
+ i_brand,
+ cc_name,
+ d_year,
+ d_moy,
+ Sum(cs_sales_price) sum_sales
+ ,
+ Avg(Sum(cs_sales_price))
+ OVER (
+ partition BY i_category, i_brand, cc_name, d_year)
+ avg_monthly_sales
+ ,
+ Rank()
+ OVER (
+ partition BY i_category, i_brand, cc_name
+ ORDER BY d_year, d_moy) rn
+ FROM item,
+ catalog_sales,
+ date_dim,
+ call_center
+ WHERE cs_item_sk = i_item_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND cc_call_center_sk = cs_call_center_sk
+ AND ( d_year = 2000
+ OR ( d_year = 2000 - 1
+ AND d_moy = 12 )
+ OR ( d_year = 2000 + 1
+ AND d_moy = 1 ) )
+ GROUP BY i_category,
+ i_brand,
+ cc_name,
+ d_year,
+ d_moy),
+ v2
+ AS (SELECT v1.i_brand,
+ v1.d_year,
+ v1.avg_monthly_sales,
+ v1.sum_sales,
+ v1_lag.sum_sales psum,
+ v1_lead.sum_sales nsum
+ FROM v1,
+ v1 v1_lag,
+ v1 v1_lead
+ WHERE v1.i_category = v1_lag.i_category
+ AND v1.i_category = v1_lead.i_category
+ AND v1.i_brand = v1_lag.i_brand
+ AND v1.i_brand = v1_lead.i_brand
+ AND v1. cc_name = v1_lag. cc_name
+ AND v1. cc_name = v1_lead. cc_name
+ AND v1.rn = v1_lag.rn + 1
+ AND v1.rn = v1_lead.rn - 1)
+SELECT *
+FROM v2
+WHERE d_year = 2000
+ AND avg_monthly_sales > 0
+ AND CASE
+ WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales)
+ /
+ avg_monthly_sales
+ ELSE NULL
+ END > 0.1
+ORDER BY sum_sales - avg_monthly_sales,
+ 3
+LIMIT 100;
+WITH "v1" AS (
+ SELECT
+ "item"."i_category" AS "i_category",
+ "item"."i_brand" AS "i_brand",
+ "call_center"."cc_name" AS "cc_name",
+ "date_dim"."d_year" AS "d_year",
+ SUM("catalog_sales"."cs_sales_price") AS "sum_sales",
+ AVG(SUM("catalog_sales"."cs_sales_price")) OVER (PARTITION BY "item"."i_category", "item"."i_brand", "call_center"."cc_name", "date_dim"."d_year") AS "avg_monthly_sales",
+ RANK() OVER (PARTITION BY "item"."i_category", "item"."i_brand", "call_center"."cc_name" ORDER BY "date_dim"."d_year", "date_dim"."d_moy") AS "rn"
+ FROM "item" AS "item"
+ JOIN "catalog_sales" AS "catalog_sales"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ AND (
+ "date_dim"."d_moy" = 1 OR "date_dim"."d_moy" = 12 OR "date_dim"."d_year" = 2000
+ )
+ AND (
+ "date_dim"."d_moy" = 1 OR "date_dim"."d_year" = 1999 OR "date_dim"."d_year" = 2000
+ )
+ AND (
+ "date_dim"."d_moy" = 12 OR "date_dim"."d_year" = 2000 OR "date_dim"."d_year" = 2001
+ )
+ AND (
+ "date_dim"."d_year" = 1999 OR "date_dim"."d_year" = 2000 OR "date_dim"."d_year" = 2001
+ )
+ JOIN "call_center" AS "call_center"
+ ON "call_center"."cc_call_center_sk" = "catalog_sales"."cs_call_center_sk"
+ GROUP BY
+ "item"."i_category",
+ "item"."i_brand",
+ "call_center"."cc_name",
+ "date_dim"."d_year",
+ "date_dim"."d_moy"
+)
+SELECT
+ "v1"."i_brand" AS "i_brand",
+ "v1"."d_year" AS "d_year",
+ "v1"."avg_monthly_sales" AS "avg_monthly_sales",
+ "v1"."sum_sales" AS "sum_sales",
+ "v1_lag"."sum_sales" AS "psum",
+ "v1_lead"."sum_sales" AS "nsum"
+FROM "v1"
+JOIN "v1" AS "v1_lag"
+ ON "v1"."cc_name" = "v1_lag"."cc_name"
+ AND "v1"."i_brand" = "v1_lag"."i_brand"
+ AND "v1"."i_category" = "v1_lag"."i_category"
+ AND "v1"."rn" = "v1_lag"."rn" + 1
+JOIN "v1" AS "v1_lead"
+ ON "v1"."cc_name" = "v1_lead"."cc_name"
+ AND "v1"."i_brand" = "v1_lead"."i_brand"
+ AND "v1"."i_category" = "v1_lead"."i_category"
+ AND "v1"."rn" = "v1_lead"."rn" - 1
+WHERE
+ "v1"."avg_monthly_sales" > 0
+ AND "v1"."d_year" = 2000
+ AND CASE
+ WHEN "v1"."avg_monthly_sales" > 0
+ THEN ABS("v1"."sum_sales" - "v1"."avg_monthly_sales") / "v1"."avg_monthly_sales"
+ ELSE NULL
+ END > 0.1
+ORDER BY
+ "v1"."sum_sales" - "v1"."avg_monthly_sales",
+ "v1"."avg_monthly_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 59
+--------------------------------------
+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,
+ mon_sales1 / mon_sales2,
+ tue_sales1 / tue_sales2,
+ wed_sales1 / wed_sales2,
+ thu_sales1 / thu_sales2,
+ fri_sales1 / fri_sales2,
+ sat_sales1 / sat_sales2
+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 1196 AND 1196 + 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 1196 + 12 AND 1196 + 23) x
+WHERE s_store_id1 = s_store_id2
+ AND d_week_seq1 = d_week_seq2 - 52
+ORDER BY s_store_name1,
+ s_store_id1,
+ d_week_seq1
+LIMIT 100;
+WITH "wss" AS (
+ SELECT
+ "date_dim"."d_week_seq" AS "d_week_seq",
+ "store_sales"."ss_store_sk" AS "ss_store_sk",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Sunday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "sun_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Monday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "mon_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Tuesday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "tue_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Wednesday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "wed_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Thursday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "thu_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Friday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "fri_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_day_name" = 'Saturday'
+ THEN "store_sales"."ss_sales_price"
+ ELSE NULL
+ END
+ ) AS "sat_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ GROUP BY
+ "date_dim"."d_week_seq",
+ "store_sales"."ss_store_sk"
+), "x" AS (
+ SELECT
+ "wss"."d_week_seq" AS "d_week_seq2",
+ "store"."s_store_id" AS "s_store_id2",
+ "wss"."sun_sales" AS "sun_sales2",
+ "wss"."mon_sales" AS "mon_sales2",
+ "wss"."tue_sales" AS "tue_sales2",
+ "wss"."wed_sales" AS "wed_sales2",
+ "wss"."thu_sales" AS "thu_sales2",
+ "wss"."fri_sales" AS "fri_sales2",
+ "wss"."sat_sales" AS "sat_sales2"
+ FROM "wss", "store" AS "store", "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1219
+ AND "date_dim"."d_month_seq" >= 1208
+ AND "date_dim"."d_week_seq" = "wss"."d_week_seq"
+ AND "wss"."ss_store_sk" = "store"."s_store_sk"
+)
+SELECT
+ "store"."s_store_name" AS "s_store_name1",
+ "store"."s_store_id" AS "s_store_id1",
+ "wss"."d_week_seq" AS "d_week_seq1",
+ "wss"."sun_sales" / "x"."sun_sales2" AS "_col_3",
+ "wss"."mon_sales" / "x"."mon_sales2" AS "_col_4",
+ "wss"."tue_sales" / "x"."tue_sales2" AS "_col_5",
+ "wss"."wed_sales" / "x"."wed_sales2" AS "_col_6",
+ "wss"."thu_sales" / "x"."thu_sales2" AS "_col_7",
+ "wss"."fri_sales" / "x"."fri_sales2" AS "_col_8",
+ "wss"."sat_sales" / "x"."sat_sales2" AS "_col_9"
+FROM "wss"
+JOIN "store" AS "store"
+ ON "wss"."ss_store_sk" = "store"."s_store_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" <= 1207
+ AND "date_dim"."d_month_seq" >= 1196
+ AND "date_dim"."d_week_seq" = "wss"."d_week_seq"
+JOIN "x" AS "x"
+ ON "store"."s_store_id" = "x"."s_store_id2"
+ AND "wss"."d_week_seq" = "x"."d_week_seq2" - 52
+ORDER BY
+ "s_store_name1",
+ "s_store_id1",
+ "d_week_seq1"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 60
+--------------------------------------
+WITH ss
+ AS (SELECT i_item_id,
+ Sum(ss_ext_sales_price) total_sales
+ FROM store_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_category IN ( 'Jewelry' ))
+ AND ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 8
+ AND ss_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id),
+ cs
+ AS (SELECT i_item_id,
+ Sum(cs_ext_sales_price) total_sales
+ FROM catalog_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_category IN ( 'Jewelry' ))
+ AND cs_item_sk = i_item_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 8
+ AND cs_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id),
+ ws
+ AS (SELECT i_item_id,
+ Sum(ws_ext_sales_price) total_sales
+ FROM web_sales,
+ date_dim,
+ customer_address,
+ item
+ WHERE i_item_id IN (SELECT i_item_id
+ FROM item
+ WHERE i_category IN ( 'Jewelry' ))
+ AND ws_item_sk = i_item_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 1999
+ AND d_moy = 8
+ AND ws_bill_addr_sk = ca_address_sk
+ AND ca_gmt_offset = -6
+ GROUP BY i_item_id)
+SELECT i_item_id,
+ Sum(total_sales) total_sales
+FROM (SELECT *
+ FROM ss
+ UNION ALL
+ SELECT *
+ FROM cs
+ UNION ALL
+ SELECT *
+ FROM ws) tmp1
+GROUP BY i_item_id
+ORDER BY i_item_id,
+ total_sales
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+), "_u_0" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_category" IN ('Jewelry')
+ GROUP BY
+ "item"."i_item_id"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 8 AND "date_dim"."d_year" = 1999
+), "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_gmt_offset" AS "ca_gmt_offset"
+ FROM "customer_address" AS "customer_address"
+ WHERE
+ "customer_address"."ca_gmt_offset" = -6
+), "ss" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("store_sales"."ss_ext_sales_price") AS "total_sales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_0"
+ ON "item"."i_item_id" = "_u_0"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_0"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "cs" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "total_sales"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_1"
+ ON "item"."i_item_id" = "_u_1"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "catalog_sales"."cs_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_1"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "ws" AS (
+ SELECT
+ "item"."i_item_id" AS "i_item_id",
+ SUM("web_sales"."ws_ext_sales_price") AS "total_sales"
+ FROM "web_sales" AS "web_sales"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ LEFT JOIN "_u_0" AS "_u_2"
+ ON "item"."i_item_id" = "_u_2"."i_item_id"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "web_sales"."ws_bill_addr_sk" = "customer_address"."ca_address_sk"
+ WHERE
+ NOT "_u_2"."i_item_id" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "cte_4" AS (
+ SELECT
+ "cs"."i_item_id" AS "i_item_id",
+ "cs"."total_sales" AS "total_sales"
+ FROM "cs"
+ UNION ALL
+ SELECT
+ "ws"."i_item_id" AS "i_item_id",
+ "ws"."total_sales" AS "total_sales"
+ FROM "ws"
+), "tmp1" AS (
+ SELECT
+ "ss"."i_item_id" AS "i_item_id",
+ "ss"."total_sales" AS "total_sales"
+ FROM "ss"
+ UNION ALL
+ SELECT
+ "cte_4"."i_item_id" AS "i_item_id",
+ "cte_4"."total_sales" AS "total_sales"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "tmp1"."i_item_id" AS "i_item_id",
+ SUM("tmp1"."total_sales") AS "total_sales"
+FROM "tmp1" AS "tmp1"
+GROUP BY
+ "tmp1"."i_item_id"
+ORDER BY
+ "i_item_id",
+ "total_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 61
+--------------------------------------
+SELECT promotions,
+ total,
+ Cast(promotions AS DECIMAL(15, 4)) /
+ Cast(total AS DECIMAL(15, 4)) * 100
+FROM (SELECT Sum(ss_ext_sales_price) promotions
+ FROM store_sales,
+ store,
+ promotion,
+ date_dim,
+ customer,
+ customer_address,
+ item
+ WHERE ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND ss_promo_sk = p_promo_sk
+ AND ss_customer_sk = c_customer_sk
+ AND ca_address_sk = c_current_addr_sk
+ AND ss_item_sk = i_item_sk
+ AND ca_gmt_offset = -7
+ AND i_category = 'Books'
+ AND ( p_channel_dmail = 'Y'
+ OR p_channel_email = 'Y'
+ OR p_channel_tv = 'Y' )
+ AND s_gmt_offset = -7
+ AND d_year = 2001
+ AND d_moy = 12) promotional_sales,
+ (SELECT Sum(ss_ext_sales_price) total
+ FROM store_sales,
+ store,
+ date_dim,
+ customer,
+ customer_address,
+ item
+ WHERE ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND ss_customer_sk = c_customer_sk
+ AND ca_address_sk = c_current_addr_sk
+ AND ss_item_sk = i_item_sk
+ AND ca_gmt_offset = -7
+ AND i_category = 'Books'
+ AND s_gmt_offset = -7
+ AND d_year = 2001
+ AND d_moy = 12) all_sales
+ORDER BY promotions,
+ total
+LIMIT 100;
+WITH "store_2" AS (
+ SELECT
+ "store"."s_store_sk" AS "s_store_sk",
+ "store"."s_gmt_offset" AS "s_gmt_offset"
+ FROM "store" AS "store"
+ WHERE
+ "store"."s_gmt_offset" = -7
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 12 AND "date_dim"."d_year" = 2001
+), "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_current_addr_sk" AS "c_current_addr_sk"
+ FROM "customer" AS "customer"
+), "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_gmt_offset" AS "ca_gmt_offset"
+ FROM "customer_address" AS "customer_address"
+ WHERE
+ "customer_address"."ca_gmt_offset" = -7
+), "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_category" AS "i_category"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_category" = 'Books'
+), "promotional_sales" AS (
+ SELECT
+ SUM("store_sales"."ss_ext_sales_price") AS "promotions"
+ FROM "store_sales" AS "store_sales"
+ JOIN "store_2" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "promotion" AS "promotion"
+ ON (
+ "promotion"."p_channel_dmail" = 'Y'
+ OR "promotion"."p_channel_email" = 'Y'
+ OR "promotion"."p_channel_tv" = 'Y'
+ )
+ AND "store_sales"."ss_promo_sk" = "promotion"."p_promo_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+), "all_sales" AS (
+ SELECT
+ SUM("store_sales"."ss_ext_sales_price") AS "total"
+ FROM "store_sales" AS "store_sales", "store_2" AS "store", "date_dim_2" AS "date_dim", "customer_2" AS "customer", "customer_address_2" AS "customer_address", "item_2" AS "item"
+ WHERE
+ "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ AND "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+)
+SELECT
+ "promotional_sales"."promotions" AS "promotions",
+ "all_sales"."total" AS "total",
+ CAST("promotional_sales"."promotions" AS DECIMAL(15, 4)) / CAST("all_sales"."total" AS DECIMAL(15, 4)) * 100 AS "_col_2"
+FROM "promotional_sales" AS "promotional_sales"
+CROSS JOIN "all_sales" AS "all_sales"
+ORDER BY
+ "promotions",
+ "total"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 62
+--------------------------------------
+SELECT Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ web_name,
+ Sum(CASE
+ WHEN ( ws_ship_date_sk - ws_sold_date_sk <= 30 ) THEN 1
+ ELSE 0
+ END) AS "30 days",
+ Sum(CASE
+ WHEN ( ws_ship_date_sk - ws_sold_date_sk > 30 )
+ AND ( ws_ship_date_sk - ws_sold_date_sk <= 60 ) THEN 1
+ ELSE 0
+ END) AS "31-60 days",
+ Sum(CASE
+ WHEN ( ws_ship_date_sk - ws_sold_date_sk > 60 )
+ AND ( ws_ship_date_sk - ws_sold_date_sk <= 90 ) THEN 1
+ ELSE 0
+ END) AS "61-90 days",
+ Sum(CASE
+ WHEN ( ws_ship_date_sk - ws_sold_date_sk > 90 )
+ AND ( ws_ship_date_sk - ws_sold_date_sk <= 120 ) THEN
+ 1
+ ELSE 0
+ END) AS "91-120 days",
+ Sum(CASE
+ WHEN ( ws_ship_date_sk - ws_sold_date_sk > 120 ) THEN 1
+ ELSE 0
+ END) AS ">120 days"
+FROM web_sales,
+ warehouse,
+ ship_mode,
+ web_site,
+ date_dim
+WHERE d_month_seq BETWEEN 1222 AND 1222 + 11
+ AND ws_ship_date_sk = d_date_sk
+ AND ws_warehouse_sk = w_warehouse_sk
+ AND ws_ship_mode_sk = sm_ship_mode_sk
+ AND ws_web_site_sk = web_site_sk
+GROUP BY Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ web_name
+ORDER BY Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ web_name
+LIMIT 100;
+SELECT
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20) AS "_col_0",
+ "ship_mode"."sm_type" AS "sm_type",
+ "web_site"."web_name" AS "web_name",
+ SUM(
+ CASE
+ WHEN "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" <= 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "30 days",
+ SUM(
+ CASE
+ WHEN "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" <= 60
+ AND "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" > 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "31-60 days",
+ SUM(
+ CASE
+ WHEN "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" <= 90
+ AND "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" > 60
+ THEN 1
+ ELSE 0
+ END
+ ) AS "61-90 days",
+ SUM(
+ CASE
+ WHEN "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" <= 120
+ AND "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" > 90
+ THEN 1
+ ELSE 0
+ END
+ ) AS "91-120 days",
+ SUM(
+ CASE
+ WHEN "web_sales"."ws_ship_date_sk" - "web_sales"."ws_sold_date_sk" > 120
+ THEN 1
+ ELSE 0
+ END
+ ) AS ">120 days"
+FROM "web_sales" AS "web_sales"
+JOIN "warehouse" AS "warehouse"
+ ON "web_sales"."ws_warehouse_sk" = "warehouse"."w_warehouse_sk"
+JOIN "ship_mode" AS "ship_mode"
+ ON "web_sales"."ws_ship_mode_sk" = "ship_mode"."sm_ship_mode_sk"
+JOIN "web_site" AS "web_site"
+ ON "web_sales"."ws_web_site_sk" = "web_site"."web_site_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" <= 1233
+ AND "date_dim"."d_month_seq" >= 1222
+ AND "web_sales"."ws_ship_date_sk" = "date_dim"."d_date_sk"
+GROUP BY
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20),
+ "ship_mode"."sm_type",
+ "web_site"."web_name"
+ORDER BY
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20),
+ "sm_type",
+ "web_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 63
+--------------------------------------
+SELECT *
+FROM (SELECT i_manager_id,
+ Sum(ss_sales_price) sum_sales,
+ Avg(Sum(ss_sales_price))
+ OVER (
+ partition BY i_manager_id) avg_monthly_sales
+ FROM item,
+ store_sales,
+ date_dim,
+ store
+ WHERE ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND d_month_seq IN ( 1200, 1200 + 1, 1200 + 2, 1200 + 3,
+ 1200 + 4, 1200 + 5, 1200 + 6, 1200 + 7,
+ 1200 + 8, 1200 + 9, 1200 + 10, 1200 + 11 )
+ AND ( ( i_category IN ( 'Books', 'Children', 'Electronics' )
+ AND i_class IN ( 'personal', 'portable', 'reference',
+ 'self-help' )
+ AND i_brand IN ( 'scholaramalgamalg #14',
+ 'scholaramalgamalg #7'
+ ,
+ 'exportiunivamalg #9',
+ 'scholaramalgamalg #9' )
+ )
+ OR ( i_category IN ( 'Women', 'Music', 'Men' )
+ AND i_class IN ( 'accessories', 'classical',
+ 'fragrances',
+ 'pants' )
+ AND i_brand IN ( 'amalgimporto #1',
+ 'edu packscholar #1',
+ 'exportiimporto #1',
+ 'importoamalg #1' ) ) )
+ GROUP BY i_manager_id,
+ d_moy) tmp1
+WHERE CASE
+ WHEN avg_monthly_sales > 0 THEN Abs (sum_sales - avg_monthly_sales) /
+ avg_monthly_sales
+ ELSE NULL
+ END > 0.1
+ORDER BY i_manager_id,
+ avg_monthly_sales,
+ sum_sales
+LIMIT 100;
+WITH "tmp1" AS (
+ SELECT
+ "item"."i_manager_id" AS "i_manager_id",
+ SUM("store_sales"."ss_sales_price") AS "sum_sales",
+ AVG(SUM("store_sales"."ss_sales_price")) OVER (PARTITION BY "item"."i_manager_id") AS "avg_monthly_sales"
+ FROM "item" AS "item"
+ JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" IN (1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ WHERE
+ (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_brand" IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')
+ )
+ AND (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ )
+ AND (
+ "item"."i_brand" IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ AND (
+ "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ OR "item"."i_category" IN ('Women', 'Music', 'Men')
+ )
+ AND (
+ "item"."i_category" IN ('Books', 'Children', 'Electronics')
+ OR "item"."i_class" IN ('accessories', 'classical', 'fragrances', 'pants')
+ )
+ AND (
+ "item"."i_category" IN ('Women', 'Music', 'Men')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ AND (
+ "item"."i_class" IN ('accessories', 'classical', 'fragrances', 'pants')
+ OR "item"."i_class" IN ('personal', 'portable', 'reference', 'self-help')
+ )
+ GROUP BY
+ "item"."i_manager_id",
+ "date_dim"."d_moy"
+)
+SELECT
+ "tmp1"."i_manager_id" AS "i_manager_id",
+ "tmp1"."sum_sales" AS "sum_sales",
+ "tmp1"."avg_monthly_sales" AS "avg_monthly_sales"
+FROM "tmp1" AS "tmp1"
+WHERE
+ CASE
+ WHEN "tmp1"."avg_monthly_sales" > 0
+ THEN ABS("tmp1"."sum_sales" - "tmp1"."avg_monthly_sales") / "tmp1"."avg_monthly_sales"
+ ELSE NULL
+ END > 0.1
+ORDER BY
+ "tmp1"."i_manager_id",
+ "tmp1"."avg_monthly_sales",
+ "tmp1"."sum_sales"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 64
+--------------------------------------
+WITH cs_ui
+ AS (SELECT cs_item_sk,
+ Sum(cs_ext_list_price) AS sale,
+ Sum(cr_refunded_cash + cr_reversed_charge
+ + cr_store_credit) AS refund
+ FROM catalog_sales,
+ catalog_returns
+ WHERE cs_item_sk = cr_item_sk
+ AND cs_order_number = cr_order_number
+ GROUP BY cs_item_sk
+ HAVING Sum(cs_ext_list_price) > 2 * Sum(
+ cr_refunded_cash + cr_reversed_charge
+ + cr_store_credit)),
+ cross_sales
+ AS (SELECT i_product_name product_name,
+ i_item_sk item_sk,
+ s_store_name store_name,
+ s_zip store_zip,
+ ad1.ca_street_number b_street_number,
+ ad1.ca_street_name b_streen_name,
+ ad1.ca_city b_city,
+ ad1.ca_zip b_zip,
+ ad2.ca_street_number c_street_number,
+ ad2.ca_street_name c_street_name,
+ ad2.ca_city c_city,
+ ad2.ca_zip c_zip,
+ d1.d_year AS syear,
+ d2.d_year AS fsyear,
+ d3.d_year s2year,
+ Count(*) cnt,
+ Sum(ss_wholesale_cost) s1,
+ Sum(ss_list_price) s2,
+ Sum(ss_coupon_amt) s3
+ FROM store_sales,
+ store_returns,
+ cs_ui,
+ date_dim d1,
+ date_dim d2,
+ date_dim d3,
+ store,
+ customer,
+ customer_demographics cd1,
+ customer_demographics cd2,
+ promotion,
+ household_demographics hd1,
+ household_demographics hd2,
+ customer_address ad1,
+ customer_address ad2,
+ income_band ib1,
+ income_band ib2,
+ item
+ WHERE ss_store_sk = s_store_sk
+ AND ss_sold_date_sk = d1.d_date_sk
+ AND ss_customer_sk = c_customer_sk
+ AND ss_cdemo_sk = cd1.cd_demo_sk
+ AND ss_hdemo_sk = hd1.hd_demo_sk
+ AND ss_addr_sk = ad1.ca_address_sk
+ AND ss_item_sk = i_item_sk
+ AND ss_item_sk = sr_item_sk
+ AND ss_ticket_number = sr_ticket_number
+ AND ss_item_sk = cs_ui.cs_item_sk
+ AND c_current_cdemo_sk = cd2.cd_demo_sk
+ AND c_current_hdemo_sk = hd2.hd_demo_sk
+ AND c_current_addr_sk = ad2.ca_address_sk
+ AND c_first_sales_date_sk = d2.d_date_sk
+ AND c_first_shipto_date_sk = d3.d_date_sk
+ AND ss_promo_sk = p_promo_sk
+ AND hd1.hd_income_band_sk = ib1.ib_income_band_sk
+ AND hd2.hd_income_band_sk = ib2.ib_income_band_sk
+ AND cd1.cd_marital_status <> cd2.cd_marital_status
+ AND i_color IN ( 'cyan', 'peach', 'blush', 'frosted',
+ 'powder', 'orange' )
+ AND i_current_price BETWEEN 58 AND 58 + 10
+ AND i_current_price BETWEEN 58 + 1 AND 58 + 15
+ GROUP BY i_product_name,
+ i_item_sk,
+ s_store_name,
+ s_zip,
+ ad1.ca_street_number,
+ ad1.ca_street_name,
+ ad1.ca_city,
+ ad1.ca_zip,
+ ad2.ca_street_number,
+ ad2.ca_street_name,
+ ad2.ca_city,
+ ad2.ca_zip,
+ d1.d_year,
+ d2.d_year,
+ d3.d_year)
+SELECT cs1.product_name,
+ cs1.store_name,
+ cs1.store_zip,
+ cs1.b_street_number,
+ cs1.b_streen_name,
+ cs1.b_city,
+ cs1.b_zip,
+ cs1.c_street_number,
+ cs1.c_street_name,
+ cs1.c_city,
+ cs1.c_zip,
+ cs1.syear,
+ cs1.cnt,
+ cs1.s1,
+ cs1.s2,
+ cs1.s3,
+ cs2.s1,
+ cs2.s2,
+ cs2.s3,
+ cs2.syear,
+ cs2.cnt
+FROM cross_sales cs1,
+ cross_sales cs2
+WHERE cs1.item_sk = cs2.item_sk
+ AND cs1.syear = 2001
+ AND cs2.syear = 2001 + 1
+ AND cs2.cnt <= cs1.cnt
+ AND cs1.store_name = cs2.store_name
+ AND cs1.store_zip = cs2.store_zip
+ORDER BY cs1.product_name,
+ cs1.store_name,
+ cs2.cnt;
+WITH "cs_ui" AS (
+ SELECT
+ "catalog_sales"."cs_item_sk" AS "cs_item_sk"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ AND "catalog_sales"."cs_order_number" = "catalog_returns"."cr_order_number"
+ GROUP BY
+ "catalog_sales"."cs_item_sk"
+ HAVING
+ SUM("catalog_sales"."cs_ext_list_price") > 2 * SUM(
+ "catalog_returns"."cr_refunded_cash" + "catalog_returns"."cr_reversed_charge" + "catalog_returns"."cr_store_credit"
+ )
+), "d1" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+), "ib2" AS (
+ SELECT
+ "income_band"."ib_income_band_sk" AS "ib_income_band_sk"
+ FROM "income_band" AS "income_band"
+), "hd2" AS (
+ SELECT
+ "household_demographics"."hd_demo_sk" AS "hd_demo_sk",
+ "household_demographics"."hd_income_band_sk" AS "hd_income_band_sk"
+ FROM "household_demographics" AS "household_demographics"
+), "cd1" AS (
+ SELECT
+ "customer_demographics"."cd_demo_sk" AS "cd_demo_sk",
+ "customer_demographics"."cd_marital_status" AS "cd_marital_status"
+ FROM "customer_demographics" AS "customer_demographics"
+), "ad1" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_street_number" AS "ca_street_number",
+ "customer_address"."ca_street_name" AS "ca_street_name",
+ "customer_address"."ca_city" AS "ca_city",
+ "customer_address"."ca_zip" AS "ca_zip"
+ FROM "customer_address" AS "customer_address"
+), "cross_sales" AS (
+ SELECT
+ "item"."i_product_name" AS "product_name",
+ "item"."i_item_sk" AS "item_sk",
+ "store"."s_store_name" AS "store_name",
+ "store"."s_zip" AS "store_zip",
+ "ad1"."ca_street_number" AS "b_street_number",
+ "ad1"."ca_street_name" AS "b_streen_name",
+ "ad1"."ca_city" AS "b_city",
+ "ad1"."ca_zip" AS "b_zip",
+ "ad2"."ca_street_number" AS "c_street_number",
+ "ad2"."ca_street_name" AS "c_street_name",
+ "ad2"."ca_city" AS "c_city",
+ "ad2"."ca_zip" AS "c_zip",
+ "d1"."d_year" AS "syear",
+ COUNT(*) AS "cnt",
+ SUM("store_sales"."ss_wholesale_cost") AS "s1",
+ SUM("store_sales"."ss_list_price") AS "s2",
+ SUM("store_sales"."ss_coupon_amt") AS "s3"
+ FROM "store_sales" AS "store_sales"
+ JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+ JOIN "cs_ui"
+ ON "store_sales"."ss_item_sk" = "cs_ui"."cs_item_sk"
+ JOIN "d1" AS "d1"
+ ON "store_sales"."ss_sold_date_sk" = "d1"."d_date_sk"
+ CROSS JOIN "ib2" AS "ib2"
+ JOIN "hd2" AS "hd2"
+ ON "hd2"."hd_income_band_sk" = "ib2"."ib_income_band_sk"
+ JOIN "customer" AS "customer"
+ ON "customer"."c_current_hdemo_sk" = "hd2"."hd_demo_sk"
+ AND "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+ JOIN "d1" AS "d2"
+ ON "customer"."c_first_sales_date_sk" = "d2"."d_date_sk"
+ JOIN "d1" AS "d3"
+ ON "customer"."c_first_shipto_date_sk" = "d3"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "cd1" AS "cd1"
+ ON "store_sales"."ss_cdemo_sk" = "cd1"."cd_demo_sk"
+ JOIN "cd1" AS "cd2"
+ ON "cd1"."cd_marital_status" <> "cd2"."cd_marital_status"
+ AND "customer"."c_current_cdemo_sk" = "cd2"."cd_demo_sk"
+ JOIN "promotion" AS "promotion"
+ ON "store_sales"."ss_promo_sk" = "promotion"."p_promo_sk"
+ JOIN "hd2" AS "hd1"
+ ON "store_sales"."ss_hdemo_sk" = "hd1"."hd_demo_sk"
+ JOIN "ad1" AS "ad1"
+ ON "store_sales"."ss_addr_sk" = "ad1"."ca_address_sk"
+ JOIN "ad1" AS "ad2"
+ ON "customer"."c_current_addr_sk" = "ad2"."ca_address_sk"
+ JOIN "ib2" AS "ib1"
+ ON "hd1"."hd_income_band_sk" = "ib1"."ib_income_band_sk"
+ JOIN "item" AS "item"
+ ON "item"."i_color" IN ('cyan', 'peach', 'blush', 'frosted', 'powder', 'orange')
+ AND "item"."i_current_price" <= 68
+ AND "item"."i_current_price" >= 59
+ AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ GROUP BY
+ "item"."i_product_name",
+ "item"."i_item_sk",
+ "store"."s_store_name",
+ "store"."s_zip",
+ "ad1"."ca_street_number",
+ "ad1"."ca_street_name",
+ "ad1"."ca_city",
+ "ad1"."ca_zip",
+ "ad2"."ca_street_number",
+ "ad2"."ca_street_name",
+ "ad2"."ca_city",
+ "ad2"."ca_zip",
+ "d1"."d_year",
+ "d2"."d_year",
+ "d3"."d_year"
+)
+SELECT
+ "cs1"."product_name" AS "product_name",
+ "cs1"."store_name" AS "store_name",
+ "cs1"."store_zip" AS "store_zip",
+ "cs1"."b_street_number" AS "b_street_number",
+ "cs1"."b_streen_name" AS "b_streen_name",
+ "cs1"."b_city" AS "b_city",
+ "cs1"."b_zip" AS "b_zip",
+ "cs1"."c_street_number" AS "c_street_number",
+ "cs1"."c_street_name" AS "c_street_name",
+ "cs1"."c_city" AS "c_city",
+ "cs1"."c_zip" AS "c_zip",
+ "cs1"."syear" AS "syear",
+ "cs1"."cnt" AS "cnt",
+ "cs1"."s1" AS "s1",
+ "cs1"."s2" AS "s2",
+ "cs1"."s3" AS "s3",
+ "cs2"."s1" AS "s1",
+ "cs2"."s2" AS "s2",
+ "cs2"."s3" AS "s3",
+ "cs2"."syear" AS "syear",
+ "cs2"."cnt" AS "cnt"
+FROM "cross_sales" AS "cs1"
+JOIN "cross_sales" AS "cs2"
+ ON "cs1"."item_sk" = "cs2"."item_sk"
+ AND "cs1"."store_name" = "cs2"."store_name"
+ AND "cs1"."store_zip" = "cs2"."store_zip"
+ AND "cs2"."cnt" <= "cs1"."cnt"
+ AND "cs2"."syear" = 2002
+WHERE
+ "cs1"."syear" = 2001
+ORDER BY
+ "cs1"."product_name",
+ "cs1"."store_name",
+ "cs2"."cnt";
+
+--------------------------------------
+-- TPC-DS 66
+--------------------------------------
+SELECT w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ ship_carriers,
+ year1,
+ Sum(jan_sales) AS jan_sales,
+ Sum(feb_sales) AS feb_sales,
+ Sum(mar_sales) AS mar_sales,
+ Sum(apr_sales) AS apr_sales,
+ Sum(may_sales) AS may_sales,
+ Sum(jun_sales) AS jun_sales,
+ Sum(jul_sales) AS jul_sales,
+ Sum(aug_sales) AS aug_sales,
+ Sum(sep_sales) AS sep_sales,
+ Sum(oct_sales) AS oct_sales,
+ Sum(nov_sales) AS nov_sales,
+ Sum(dec_sales) AS dec_sales,
+ Sum(jan_sales / w_warehouse_sq_ft) AS jan_sales_per_sq_foot,
+ Sum(feb_sales / w_warehouse_sq_ft) AS feb_sales_per_sq_foot,
+ Sum(mar_sales / w_warehouse_sq_ft) AS mar_sales_per_sq_foot,
+ Sum(apr_sales / w_warehouse_sq_ft) AS apr_sales_per_sq_foot,
+ Sum(may_sales / w_warehouse_sq_ft) AS may_sales_per_sq_foot,
+ Sum(jun_sales / w_warehouse_sq_ft) AS jun_sales_per_sq_foot,
+ Sum(jul_sales / w_warehouse_sq_ft) AS jul_sales_per_sq_foot,
+ Sum(aug_sales / w_warehouse_sq_ft) AS aug_sales_per_sq_foot,
+ Sum(sep_sales / w_warehouse_sq_ft) AS sep_sales_per_sq_foot,
+ Sum(oct_sales / w_warehouse_sq_ft) AS oct_sales_per_sq_foot,
+ Sum(nov_sales / w_warehouse_sq_ft) AS nov_sales_per_sq_foot,
+ Sum(dec_sales / w_warehouse_sq_ft) AS dec_sales_per_sq_foot,
+ Sum(jan_net) AS jan_net,
+ Sum(feb_net) AS feb_net,
+ Sum(mar_net) AS mar_net,
+ Sum(apr_net) AS apr_net,
+ Sum(may_net) AS may_net,
+ Sum(jun_net) AS jun_net,
+ Sum(jul_net) AS jul_net,
+ Sum(aug_net) AS aug_net,
+ Sum(sep_net) AS sep_net,
+ Sum(oct_net) AS oct_net,
+ Sum(nov_net) AS nov_net,
+ Sum(dec_net) AS dec_net
+FROM (SELECT w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ 'ZOUROS'
+ || ','
+ || 'ZHOU' AS ship_carriers,
+ d_year AS year1,
+ Sum(CASE
+ WHEN d_moy = 1 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS jan_sales,
+ Sum(CASE
+ WHEN d_moy = 2 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS feb_sales,
+ Sum(CASE
+ WHEN d_moy = 3 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS mar_sales,
+ Sum(CASE
+ WHEN d_moy = 4 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS apr_sales,
+ Sum(CASE
+ WHEN d_moy = 5 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS may_sales,
+ Sum(CASE
+ WHEN d_moy = 6 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS jun_sales,
+ Sum(CASE
+ WHEN d_moy = 7 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS jul_sales,
+ Sum(CASE
+ WHEN d_moy = 8 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS aug_sales,
+ Sum(CASE
+ WHEN d_moy = 9 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS sep_sales,
+ Sum(CASE
+ WHEN d_moy = 10 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS oct_sales,
+ Sum(CASE
+ WHEN d_moy = 11 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS nov_sales,
+ Sum(CASE
+ WHEN d_moy = 12 THEN ws_ext_sales_price * ws_quantity
+ ELSE 0
+ END) AS dec_sales,
+ Sum(CASE
+ WHEN d_moy = 1 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS jan_net,
+ Sum(CASE
+ WHEN d_moy = 2 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS feb_net,
+ Sum(CASE
+ WHEN d_moy = 3 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS mar_net,
+ Sum(CASE
+ WHEN d_moy = 4 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS apr_net,
+ Sum(CASE
+ WHEN d_moy = 5 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS may_net,
+ Sum(CASE
+ WHEN d_moy = 6 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS jun_net,
+ Sum(CASE
+ WHEN d_moy = 7 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS jul_net,
+ Sum(CASE
+ WHEN d_moy = 8 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS aug_net,
+ Sum(CASE
+ WHEN d_moy = 9 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS sep_net,
+ Sum(CASE
+ WHEN d_moy = 10 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS oct_net,
+ Sum(CASE
+ WHEN d_moy = 11 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS nov_net,
+ Sum(CASE
+ WHEN d_moy = 12 THEN ws_net_paid_inc_ship * ws_quantity
+ ELSE 0
+ END) AS dec_net
+ FROM web_sales,
+ warehouse,
+ date_dim,
+ time_dim,
+ ship_mode
+ WHERE ws_warehouse_sk = w_warehouse_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND ws_sold_time_sk = t_time_sk
+ AND ws_ship_mode_sk = sm_ship_mode_sk
+ AND d_year = 1998
+ AND t_time BETWEEN 7249 AND 7249 + 28800
+ AND sm_carrier IN ( 'ZOUROS', 'ZHOU' )
+ GROUP BY w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ d_year
+ UNION ALL
+ SELECT w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ 'ZOUROS'
+ || ','
+ || 'ZHOU' AS ship_carriers,
+ d_year AS year1,
+ Sum(CASE
+ WHEN d_moy = 1 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS jan_sales,
+ Sum(CASE
+ WHEN d_moy = 2 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS feb_sales,
+ Sum(CASE
+ WHEN d_moy = 3 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS mar_sales,
+ Sum(CASE
+ WHEN d_moy = 4 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS apr_sales,
+ Sum(CASE
+ WHEN d_moy = 5 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS may_sales,
+ Sum(CASE
+ WHEN d_moy = 6 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS jun_sales,
+ Sum(CASE
+ WHEN d_moy = 7 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS jul_sales,
+ Sum(CASE
+ WHEN d_moy = 8 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS aug_sales,
+ Sum(CASE
+ WHEN d_moy = 9 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS sep_sales,
+ Sum(CASE
+ WHEN d_moy = 10 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS oct_sales,
+ Sum(CASE
+ WHEN d_moy = 11 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS nov_sales,
+ Sum(CASE
+ WHEN d_moy = 12 THEN cs_ext_sales_price * cs_quantity
+ ELSE 0
+ END) AS dec_sales,
+ Sum(CASE
+ WHEN d_moy = 1 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS jan_net,
+ Sum(CASE
+ WHEN d_moy = 2 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS feb_net,
+ Sum(CASE
+ WHEN d_moy = 3 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS mar_net,
+ Sum(CASE
+ WHEN d_moy = 4 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS apr_net,
+ Sum(CASE
+ WHEN d_moy = 5 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS may_net,
+ Sum(CASE
+ WHEN d_moy = 6 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS jun_net,
+ Sum(CASE
+ WHEN d_moy = 7 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS jul_net,
+ Sum(CASE
+ WHEN d_moy = 8 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS aug_net,
+ Sum(CASE
+ WHEN d_moy = 9 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS sep_net,
+ Sum(CASE
+ WHEN d_moy = 10 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS oct_net,
+ Sum(CASE
+ WHEN d_moy = 11 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS nov_net,
+ Sum(CASE
+ WHEN d_moy = 12 THEN cs_net_paid * cs_quantity
+ ELSE 0
+ END) AS dec_net
+ FROM catalog_sales,
+ warehouse,
+ date_dim,
+ time_dim,
+ ship_mode
+ WHERE cs_warehouse_sk = w_warehouse_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND cs_sold_time_sk = t_time_sk
+ AND cs_ship_mode_sk = sm_ship_mode_sk
+ AND d_year = 1998
+ AND t_time BETWEEN 7249 AND 7249 + 28800
+ AND sm_carrier IN ( 'ZOUROS', 'ZHOU' )
+ GROUP BY w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ d_year) x
+GROUP BY w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ ship_carriers,
+ year1
+ORDER BY w_warehouse_name
+LIMIT 100;
+WITH "warehouse_2" AS (
+ SELECT
+ "warehouse"."w_warehouse_sk" AS "w_warehouse_sk",
+ "warehouse"."w_warehouse_name" AS "w_warehouse_name",
+ "warehouse"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "warehouse"."w_city" AS "w_city",
+ "warehouse"."w_county" AS "w_county",
+ "warehouse"."w_state" AS "w_state",
+ "warehouse"."w_country" AS "w_country"
+ FROM "warehouse" AS "warehouse"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_year" = 1998
+), "time_dim_2" AS (
+ SELECT
+ "time_dim"."t_time_sk" AS "t_time_sk",
+ "time_dim"."t_time" AS "t_time"
+ FROM "time_dim" AS "time_dim"
+ WHERE
+ "time_dim"."t_time" <= 36049 AND "time_dim"."t_time" >= 7249
+), "ship_mode_2" AS (
+ SELECT
+ "ship_mode"."sm_ship_mode_sk" AS "sm_ship_mode_sk",
+ "ship_mode"."sm_carrier" AS "sm_carrier"
+ FROM "ship_mode" AS "ship_mode"
+ WHERE
+ "ship_mode"."sm_carrier" IN ('ZOUROS', 'ZHOU')
+), "cte" AS (
+ SELECT
+ "warehouse"."w_warehouse_name" AS "w_warehouse_name",
+ "warehouse"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "warehouse"."w_city" AS "w_city",
+ "warehouse"."w_county" AS "w_county",
+ "warehouse"."w_state" AS "w_state",
+ "warehouse"."w_country" AS "w_country",
+ 'ZOUROS' || ',' || 'ZHOU' AS "ship_carriers",
+ "date_dim"."d_year" AS "year1",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 1
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jan_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 2
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "feb_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 3
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "mar_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 4
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "apr_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 5
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "may_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 6
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jun_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 7
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jul_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 8
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "aug_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 9
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "sep_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 10
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "oct_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 11
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "nov_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 12
+ THEN "web_sales"."ws_ext_sales_price" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "dec_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 1
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jan_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 2
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "feb_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 3
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "mar_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 4
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "apr_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 5
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "may_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 6
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jun_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 7
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "jul_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 8
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "aug_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 9
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "sep_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 10
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "oct_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 11
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "nov_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 12
+ THEN "web_sales"."ws_net_paid_inc_ship" * "web_sales"."ws_quantity"
+ ELSE 0
+ END
+ ) AS "dec_net"
+ FROM "web_sales" AS "web_sales"
+ JOIN "warehouse_2" AS "warehouse"
+ ON "web_sales"."ws_warehouse_sk" = "warehouse"."w_warehouse_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "time_dim_2" AS "time_dim"
+ ON "web_sales"."ws_sold_time_sk" = "time_dim"."t_time_sk"
+ JOIN "ship_mode_2" AS "ship_mode"
+ ON "web_sales"."ws_ship_mode_sk" = "ship_mode"."sm_ship_mode_sk"
+ GROUP BY
+ "warehouse"."w_warehouse_name",
+ "warehouse"."w_warehouse_sq_ft",
+ "warehouse"."w_city",
+ "warehouse"."w_county",
+ "warehouse"."w_state",
+ "warehouse"."w_country",
+ "date_dim"."d_year"
+), "cte_2" AS (
+ SELECT
+ "warehouse"."w_warehouse_name" AS "w_warehouse_name",
+ "warehouse"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "warehouse"."w_city" AS "w_city",
+ "warehouse"."w_county" AS "w_county",
+ "warehouse"."w_state" AS "w_state",
+ "warehouse"."w_country" AS "w_country",
+ 'ZOUROS' || ',' || 'ZHOU' AS "ship_carriers",
+ "date_dim"."d_year" AS "year1",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 1
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jan_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 2
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "feb_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 3
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "mar_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 4
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "apr_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 5
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "may_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 6
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jun_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 7
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jul_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 8
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "aug_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 9
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "sep_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 10
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "oct_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 11
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "nov_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 12
+ THEN "catalog_sales"."cs_ext_sales_price" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "dec_sales",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 1
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jan_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 2
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "feb_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 3
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "mar_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 4
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "apr_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 5
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "may_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 6
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jun_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 7
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "jul_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 8
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "aug_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 9
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "sep_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 10
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "oct_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 11
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "nov_net",
+ SUM(
+ CASE
+ WHEN "date_dim"."d_moy" = 12
+ THEN "catalog_sales"."cs_net_paid" * "catalog_sales"."cs_quantity"
+ ELSE 0
+ END
+ ) AS "dec_net"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "warehouse_2" AS "warehouse"
+ ON "catalog_sales"."cs_warehouse_sk" = "warehouse"."w_warehouse_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "time_dim_2" AS "time_dim"
+ ON "catalog_sales"."cs_sold_time_sk" = "time_dim"."t_time_sk"
+ JOIN "ship_mode_2" AS "ship_mode"
+ ON "catalog_sales"."cs_ship_mode_sk" = "ship_mode"."sm_ship_mode_sk"
+ GROUP BY
+ "warehouse"."w_warehouse_name",
+ "warehouse"."w_warehouse_sq_ft",
+ "warehouse"."w_city",
+ "warehouse"."w_county",
+ "warehouse"."w_state",
+ "warehouse"."w_country",
+ "date_dim"."d_year"
+), "x" AS (
+ SELECT
+ "cte"."w_warehouse_name" AS "w_warehouse_name",
+ "cte"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "cte"."w_city" AS "w_city",
+ "cte"."w_county" AS "w_county",
+ "cte"."w_state" AS "w_state",
+ "cte"."w_country" AS "w_country",
+ "cte"."ship_carriers" AS "ship_carriers",
+ "cte"."year1" AS "year1",
+ "cte"."jan_sales" AS "jan_sales",
+ "cte"."feb_sales" AS "feb_sales",
+ "cte"."mar_sales" AS "mar_sales",
+ "cte"."apr_sales" AS "apr_sales",
+ "cte"."may_sales" AS "may_sales",
+ "cte"."jun_sales" AS "jun_sales",
+ "cte"."jul_sales" AS "jul_sales",
+ "cte"."aug_sales" AS "aug_sales",
+ "cte"."sep_sales" AS "sep_sales",
+ "cte"."oct_sales" AS "oct_sales",
+ "cte"."nov_sales" AS "nov_sales",
+ "cte"."dec_sales" AS "dec_sales",
+ "cte"."jan_net" AS "jan_net",
+ "cte"."feb_net" AS "feb_net",
+ "cte"."mar_net" AS "mar_net",
+ "cte"."apr_net" AS "apr_net",
+ "cte"."may_net" AS "may_net",
+ "cte"."jun_net" AS "jun_net",
+ "cte"."jul_net" AS "jul_net",
+ "cte"."aug_net" AS "aug_net",
+ "cte"."sep_net" AS "sep_net",
+ "cte"."oct_net" AS "oct_net",
+ "cte"."nov_net" AS "nov_net",
+ "cte"."dec_net" AS "dec_net"
+ FROM "cte" AS "cte"
+ UNION ALL
+ SELECT
+ "cte_2"."w_warehouse_name" AS "w_warehouse_name",
+ "cte_2"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "cte_2"."w_city" AS "w_city",
+ "cte_2"."w_county" AS "w_county",
+ "cte_2"."w_state" AS "w_state",
+ "cte_2"."w_country" AS "w_country",
+ "cte_2"."ship_carriers" AS "ship_carriers",
+ "cte_2"."year1" AS "year1",
+ "cte_2"."jan_sales" AS "jan_sales",
+ "cte_2"."feb_sales" AS "feb_sales",
+ "cte_2"."mar_sales" AS "mar_sales",
+ "cte_2"."apr_sales" AS "apr_sales",
+ "cte_2"."may_sales" AS "may_sales",
+ "cte_2"."jun_sales" AS "jun_sales",
+ "cte_2"."jul_sales" AS "jul_sales",
+ "cte_2"."aug_sales" AS "aug_sales",
+ "cte_2"."sep_sales" AS "sep_sales",
+ "cte_2"."oct_sales" AS "oct_sales",
+ "cte_2"."nov_sales" AS "nov_sales",
+ "cte_2"."dec_sales" AS "dec_sales",
+ "cte_2"."jan_net" AS "jan_net",
+ "cte_2"."feb_net" AS "feb_net",
+ "cte_2"."mar_net" AS "mar_net",
+ "cte_2"."apr_net" AS "apr_net",
+ "cte_2"."may_net" AS "may_net",
+ "cte_2"."jun_net" AS "jun_net",
+ "cte_2"."jul_net" AS "jul_net",
+ "cte_2"."aug_net" AS "aug_net",
+ "cte_2"."sep_net" AS "sep_net",
+ "cte_2"."oct_net" AS "oct_net",
+ "cte_2"."nov_net" AS "nov_net",
+ "cte_2"."dec_net" AS "dec_net"
+ FROM "cte_2" AS "cte_2"
+)
+SELECT
+ "x"."w_warehouse_name" AS "w_warehouse_name",
+ "x"."w_warehouse_sq_ft" AS "w_warehouse_sq_ft",
+ "x"."w_city" AS "w_city",
+ "x"."w_county" AS "w_county",
+ "x"."w_state" AS "w_state",
+ "x"."w_country" AS "w_country",
+ "x"."ship_carriers" AS "ship_carriers",
+ "x"."year1" AS "year1",
+ SUM("x"."jan_sales") AS "jan_sales",
+ SUM("x"."feb_sales") AS "feb_sales",
+ SUM("x"."mar_sales") AS "mar_sales",
+ SUM("x"."apr_sales") AS "apr_sales",
+ SUM("x"."may_sales") AS "may_sales",
+ SUM("x"."jun_sales") AS "jun_sales",
+ SUM("x"."jul_sales") AS "jul_sales",
+ SUM("x"."aug_sales") AS "aug_sales",
+ SUM("x"."sep_sales") AS "sep_sales",
+ SUM("x"."oct_sales") AS "oct_sales",
+ SUM("x"."nov_sales") AS "nov_sales",
+ SUM("x"."dec_sales") AS "dec_sales",
+ SUM("x"."jan_sales" / "x"."w_warehouse_sq_ft") AS "jan_sales_per_sq_foot",
+ SUM("x"."feb_sales" / "x"."w_warehouse_sq_ft") AS "feb_sales_per_sq_foot",
+ SUM("x"."mar_sales" / "x"."w_warehouse_sq_ft") AS "mar_sales_per_sq_foot",
+ SUM("x"."apr_sales" / "x"."w_warehouse_sq_ft") AS "apr_sales_per_sq_foot",
+ SUM("x"."may_sales" / "x"."w_warehouse_sq_ft") AS "may_sales_per_sq_foot",
+ SUM("x"."jun_sales" / "x"."w_warehouse_sq_ft") AS "jun_sales_per_sq_foot",
+ SUM("x"."jul_sales" / "x"."w_warehouse_sq_ft") AS "jul_sales_per_sq_foot",
+ SUM("x"."aug_sales" / "x"."w_warehouse_sq_ft") AS "aug_sales_per_sq_foot",
+ SUM("x"."sep_sales" / "x"."w_warehouse_sq_ft") AS "sep_sales_per_sq_foot",
+ SUM("x"."oct_sales" / "x"."w_warehouse_sq_ft") AS "oct_sales_per_sq_foot",
+ SUM("x"."nov_sales" / "x"."w_warehouse_sq_ft") AS "nov_sales_per_sq_foot",
+ SUM("x"."dec_sales" / "x"."w_warehouse_sq_ft") AS "dec_sales_per_sq_foot",
+ SUM("x"."jan_net") AS "jan_net",
+ SUM("x"."feb_net") AS "feb_net",
+ SUM("x"."mar_net") AS "mar_net",
+ SUM("x"."apr_net") AS "apr_net",
+ SUM("x"."may_net") AS "may_net",
+ SUM("x"."jun_net") AS "jun_net",
+ SUM("x"."jul_net") AS "jul_net",
+ SUM("x"."aug_net") AS "aug_net",
+ SUM("x"."sep_net") AS "sep_net",
+ SUM("x"."oct_net") AS "oct_net",
+ SUM("x"."nov_net") AS "nov_net",
+ SUM("x"."dec_net") AS "dec_net"
+FROM "x" AS "x"
+GROUP BY
+ "x"."w_warehouse_name",
+ "x"."w_warehouse_sq_ft",
+ "x"."w_city",
+ "x"."w_county",
+ "x"."w_state",
+ "x"."w_country",
+ "x"."ship_carriers",
+ "x"."year1"
+ORDER BY
+ "w_warehouse_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 67
+--------------------------------------
+select *
+from (select i_category
+ ,i_class
+ ,i_brand
+ ,i_product_name
+ ,d_year
+ ,d_qoy
+ ,d_moy
+ ,s_store_id
+ ,sumsales
+ ,rank() over (partition by i_category order by sumsales desc) rk
+ from (select i_category
+ ,i_class
+ ,i_brand
+ ,i_product_name
+ ,d_year
+ ,d_qoy
+ ,d_moy
+ ,s_store_id
+ ,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales
+ from store_sales
+ ,date_dim
+ ,store
+ ,item
+ where ss_sold_date_sk=d_date_sk
+ and ss_item_sk=i_item_sk
+ and ss_store_sk = s_store_sk
+ and d_month_seq between 1181 and 1181+11
+ group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2
+where rk <= 100
+order by i_category
+ ,i_class
+ ,i_brand
+ ,i_product_name
+ ,d_year
+ ,d_qoy
+ ,d_moy
+ ,s_store_id
+ ,sumsales
+ ,rk
+limit 100
+;
+WITH "dw1" AS (
+ SELECT
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ "item"."i_brand" AS "i_brand",
+ "item"."i_product_name" AS "i_product_name",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_moy" AS "d_moy",
+ "store"."s_store_id" AS "s_store_id",
+ SUM(COALESCE("store_sales"."ss_sales_price" * "store_sales"."ss_quantity", 0)) AS "sumsales"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_month_seq" <= 1192
+ AND "date_dim"."d_month_seq" >= 1181
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "item" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ GROUP BY
+ ROLLUP (
+ "item"."i_category",
+ "item"."i_class",
+ "item"."i_brand",
+ "item"."i_product_name",
+ "date_dim"."d_year",
+ "date_dim"."d_qoy",
+ "date_dim"."d_moy",
+ "store"."s_store_id"
+ )
+), "dw2" AS (
+ SELECT
+ "dw1"."i_category" AS "i_category",
+ "dw1"."i_class" AS "i_class",
+ "dw1"."i_brand" AS "i_brand",
+ "dw1"."i_product_name" AS "i_product_name",
+ "dw1"."d_year" AS "d_year",
+ "dw1"."d_qoy" AS "d_qoy",
+ "dw1"."d_moy" AS "d_moy",
+ "dw1"."s_store_id" AS "s_store_id",
+ "dw1"."sumsales" AS "sumsales",
+ RANK() OVER (PARTITION BY "dw1"."i_category" ORDER BY "dw1"."sumsales" DESC) AS "rk"
+ FROM "dw1" AS "dw1"
+)
+SELECT
+ "dw2"."i_category" AS "i_category",
+ "dw2"."i_class" AS "i_class",
+ "dw2"."i_brand" AS "i_brand",
+ "dw2"."i_product_name" AS "i_product_name",
+ "dw2"."d_year" AS "d_year",
+ "dw2"."d_qoy" AS "d_qoy",
+ "dw2"."d_moy" AS "d_moy",
+ "dw2"."s_store_id" AS "s_store_id",
+ "dw2"."sumsales" AS "sumsales",
+ "dw2"."rk" AS "rk"
+FROM "dw2" AS "dw2"
+WHERE
+ "dw2"."rk" <= 100
+ORDER BY
+ "dw2"."i_category",
+ "dw2"."i_class",
+ "dw2"."i_brand",
+ "dw2"."i_product_name",
+ "dw2"."d_year",
+ "dw2"."d_qoy",
+ "dw2"."d_moy",
+ "dw2"."s_store_id",
+ "dw2"."sumsales",
+ "dw2"."rk"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 68
+--------------------------------------
+SELECT c_last_name,
+ c_first_name,
+ ca_city,
+ bought_city,
+ ss_ticket_number,
+ extended_price,
+ extended_tax,
+ list_price
+FROM (SELECT ss_ticket_number,
+ ss_customer_sk,
+ ca_city bought_city,
+ Sum(ss_ext_sales_price) extended_price,
+ Sum(ss_ext_list_price) list_price,
+ Sum(ss_ext_tax) extended_tax
+ FROM store_sales,
+ date_dim,
+ store,
+ household_demographics,
+ customer_address
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_store_sk = store.s_store_sk
+ AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND store_sales.ss_addr_sk = customer_address.ca_address_sk
+ AND date_dim.d_dom BETWEEN 1 AND 2
+ AND ( household_demographics.hd_dep_count = 8
+ OR household_demographics.hd_vehicle_count = 3 )
+ AND date_dim.d_year IN ( 1998, 1998 + 1, 1998 + 2 )
+ AND store.s_city IN ( 'Fairview', 'Midway' )
+ GROUP BY ss_ticket_number,
+ ss_customer_sk,
+ ss_addr_sk,
+ ca_city) dn,
+ customer,
+ customer_address current_addr
+WHERE ss_customer_sk = c_customer_sk
+ AND customer.c_current_addr_sk = current_addr.ca_address_sk
+ AND current_addr.ca_city <> bought_city
+ORDER BY c_last_name,
+ ss_ticket_number
+LIMIT 100;
+WITH "customer_address_2" AS (
+ SELECT
+ "customer_address"."ca_address_sk" AS "ca_address_sk",
+ "customer_address"."ca_city" AS "ca_city"
+ FROM "customer_address" AS "customer_address"
+), "dn" AS (
+ SELECT
+ "store_sales"."ss_ticket_number" AS "ss_ticket_number",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ "customer_address"."ca_city" AS "bought_city",
+ SUM("store_sales"."ss_ext_sales_price") AS "extended_price",
+ SUM("store_sales"."ss_ext_list_price") AS "list_price",
+ SUM("store_sales"."ss_ext_tax") AS "extended_tax"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_dom" <= 2
+ AND "date_dim"."d_dom" >= 1
+ AND "date_dim"."d_year" IN (1998, 1999, 2000)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store"."s_city" IN ('Fairview', 'Midway')
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "household_demographics" AS "household_demographics"
+ ON (
+ "household_demographics"."hd_dep_count" = 8
+ OR "household_demographics"."hd_vehicle_count" = 3
+ )
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ JOIN "customer_address_2" AS "customer_address"
+ ON "store_sales"."ss_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "store_sales"."ss_ticket_number",
+ "store_sales"."ss_customer_sk",
+ "store_sales"."ss_addr_sk",
+ "customer_address"."ca_city"
+)
+SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "current_addr"."ca_city" AS "ca_city",
+ "dn"."bought_city" AS "bought_city",
+ "dn"."ss_ticket_number" AS "ss_ticket_number",
+ "dn"."extended_price" AS "extended_price",
+ "dn"."extended_tax" AS "extended_tax",
+ "dn"."list_price" AS "list_price"
+FROM "dn" AS "dn"
+JOIN "customer_address_2" AS "current_addr"
+ ON "current_addr"."ca_city" <> "dn"."bought_city"
+JOIN "customer" AS "customer"
+ ON "customer"."c_current_addr_sk" = "current_addr"."ca_address_sk"
+ AND "dn"."ss_customer_sk" = "customer"."c_customer_sk"
+ORDER BY
+ "c_last_name",
+ "ss_ticket_number"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 69
+--------------------------------------
+SELECT cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ Count(*) cnt1,
+ cd_purchase_estimate,
+ Count(*) cnt2,
+ cd_credit_rating,
+ Count(*) cnt3
+FROM customer c,
+ customer_address ca,
+ customer_demographics
+WHERE c.c_current_addr_sk = ca.ca_address_sk
+ AND ca_state IN ( 'KS', 'AZ', 'NE' )
+ AND cd_demo_sk = c.c_current_cdemo_sk
+ AND EXISTS (SELECT *
+ FROM store_sales,
+ date_dim
+ WHERE c.c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year = 2004
+ AND d_moy BETWEEN 3 AND 3 + 2)
+ AND ( NOT EXISTS (SELECT *
+ FROM web_sales,
+ date_dim
+ WHERE c.c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 2004
+ AND d_moy BETWEEN 3 AND 3 + 2)
+ AND NOT EXISTS (SELECT *
+ FROM catalog_sales,
+ date_dim
+ WHERE c.c_customer_sk = cs_ship_customer_sk
+ AND cs_sold_date_sk = d_date_sk
+ AND d_year = 2004
+ AND d_moy BETWEEN 3 AND 3 + 2) )
+GROUP BY cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ cd_purchase_estimate,
+ cd_credit_rating
+ORDER BY cd_gender,
+ cd_marital_status,
+ cd_education_status,
+ cd_purchase_estimate,
+ cd_credit_rating
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date_id" AS "d_date_id",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq",
+ "date_dim"."d_week_seq" AS "d_week_seq",
+ "date_dim"."d_quarter_seq" AS "d_quarter_seq",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_dow" AS "d_dow",
+ "date_dim"."d_moy" AS "d_moy",
+ "date_dim"."d_dom" AS "d_dom",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "date_dim"."d_fy_year" AS "d_fy_year",
+ "date_dim"."d_fy_quarter_seq" AS "d_fy_quarter_seq",
+ "date_dim"."d_fy_week_seq" AS "d_fy_week_seq",
+ "date_dim"."d_day_name" AS "d_day_name",
+ "date_dim"."d_quarter_name" AS "d_quarter_name",
+ "date_dim"."d_holiday" AS "d_holiday",
+ "date_dim"."d_weekend" AS "d_weekend",
+ "date_dim"."d_following_holiday" AS "d_following_holiday",
+ "date_dim"."d_first_dom" AS "d_first_dom",
+ "date_dim"."d_last_dom" AS "d_last_dom",
+ "date_dim"."d_same_day_ly" AS "d_same_day_ly",
+ "date_dim"."d_same_day_lq" AS "d_same_day_lq",
+ "date_dim"."d_current_day" AS "d_current_day",
+ "date_dim"."d_current_week" AS "d_current_week",
+ "date_dim"."d_current_month" AS "d_current_month",
+ "date_dim"."d_current_quarter" AS "d_current_quarter",
+ "date_dim"."d_current_year" AS "d_current_year"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" <= 5 AND "date_dim"."d_moy" >= 3 AND "date_dim"."d_year" = 2004
+), "_u_0" AS (
+ SELECT
+ "store_sales"."ss_customer_sk" AS "_u_1"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "store_sales"."ss_customer_sk"
+), "_u_2" AS (
+ SELECT
+ "web_sales"."ws_bill_customer_sk" AS "_u_3"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "web_sales"."ws_bill_customer_sk"
+), "_u_4" AS (
+ SELECT
+ "catalog_sales"."cs_ship_customer_sk" AS "_u_5"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_ship_customer_sk"
+)
+SELECT
+ "customer_demographics"."cd_gender" AS "cd_gender",
+ "customer_demographics"."cd_marital_status" AS "cd_marital_status",
+ "customer_demographics"."cd_education_status" AS "cd_education_status",
+ COUNT(*) AS "cnt1",
+ "customer_demographics"."cd_purchase_estimate" AS "cd_purchase_estimate",
+ COUNT(*) AS "cnt2",
+ "customer_demographics"."cd_credit_rating" AS "cd_credit_rating",
+ COUNT(*) AS "cnt3"
+FROM "customer" AS "customer"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "customer"."c_customer_sk" = "_u_0"."_u_1"
+LEFT JOIN "_u_2" AS "_u_2"
+ ON "customer"."c_customer_sk" = "_u_2"."_u_3"
+LEFT JOIN "_u_4" AS "_u_4"
+ ON "customer"."c_customer_sk" = "_u_4"."_u_5"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+ AND "customer_address"."ca_state" IN ('KS', 'AZ', 'NE')
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_demo_sk" = "customer"."c_current_cdemo_sk"
+WHERE
+ "_u_2"."_u_3" IS NULL AND "_u_4"."_u_5" IS NULL AND NOT "_u_0"."_u_1" IS NULL
+GROUP BY
+ "customer_demographics"."cd_gender",
+ "customer_demographics"."cd_marital_status",
+ "customer_demographics"."cd_education_status",
+ "customer_demographics"."cd_purchase_estimate",
+ "customer_demographics"."cd_credit_rating"
+ORDER BY
+ "cd_gender",
+ "cd_marital_status",
+ "cd_education_status",
+ "cd_purchase_estimate",
+ "cd_credit_rating"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 70
+--------------------------------------
+SELECT Sum(ss_net_profit) AS total_sum,
+ s_state,
+ s_county,
+ Grouping(s_state) + Grouping(s_county) AS lochierarchy,
+ Rank()
+ OVER (
+ partition BY Grouping(s_state)+Grouping(s_county), CASE WHEN
+ Grouping(
+ s_county) = 0 THEN s_state END
+ ORDER BY Sum(ss_net_profit) DESC) AS rank_within_parent
+FROM store_sales,
+ date_dim d1,
+ store
+WHERE d1.d_month_seq BETWEEN 1200 AND 1200 + 11
+ AND d1.d_date_sk = ss_sold_date_sk
+ AND s_store_sk = ss_store_sk
+ AND s_state IN (SELECT s_state
+ FROM (SELECT s_state AS
+ s_state,
+ Rank()
+ OVER (
+ partition BY s_state
+ ORDER BY Sum(ss_net_profit) DESC) AS
+ ranking
+ FROM store_sales,
+ store,
+ date_dim
+ WHERE d_month_seq BETWEEN 1200 AND 1200 + 11
+ AND d_date_sk = ss_sold_date_sk
+ AND s_store_sk = ss_store_sk
+ GROUP BY s_state) tmp1
+ WHERE ranking <= 5)
+GROUP BY rollup( s_state, s_county )
+ORDER BY lochierarchy DESC,
+ CASE
+ WHEN lochierarchy = 0 THEN s_state
+ END,
+ rank_within_parent
+LIMIT 100;
+WITH "store_sales_2" AS (
+ SELECT
+ "store_sales"."ss_sold_date_sk" AS "ss_sold_date_sk",
+ "store_sales"."ss_store_sk" AS "ss_store_sk",
+ "store_sales"."ss_net_profit" AS "ss_net_profit"
+ FROM "store_sales" AS "store_sales"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_month_seq" AS "d_month_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1211 AND "date_dim"."d_month_seq" >= 1200
+), "tmp1" AS (
+ SELECT
+ "store"."s_state" AS "s_state",
+ RANK() OVER (PARTITION BY "store"."s_state" ORDER BY SUM("store_sales"."ss_net_profit") DESC) AS "ranking"
+ FROM "store_sales_2" AS "store_sales"
+ JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ GROUP BY
+ "store"."s_state"
+), "_u_0" AS (
+ SELECT
+ "tmp1"."s_state" AS "s_state"
+ FROM "tmp1" AS "tmp1"
+ WHERE
+ "tmp1"."ranking" <= 5
+ GROUP BY
+ "tmp1"."s_state"
+)
+SELECT
+ SUM("store_sales"."ss_net_profit") AS "total_sum",
+ "store"."s_state" AS "s_state",
+ "store"."s_county" AS "s_county",
+ GROUPING("store"."s_state") + GROUPING("store"."s_county") AS "lochierarchy",
+ RANK() OVER (PARTITION BY GROUPING("store"."s_state") + GROUPING("store"."s_county"), CASE WHEN GROUPING("store"."s_county") = 0 THEN "store"."s_state" END ORDER BY SUM("store_sales"."ss_net_profit") DESC) AS "rank_within_parent"
+FROM "store_sales_2" AS "store_sales"
+JOIN "store" AS "store"
+ ON "store"."s_store_sk" = "store_sales"."ss_store_sk"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "store"."s_state" = "_u_0"."s_state"
+JOIN "date_dim_2" AS "d1"
+ ON "d1"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+WHERE
+ NOT "_u_0"."s_state" IS NULL
+GROUP BY
+ROLLUP (
+ "store"."s_state",
+ "store"."s_county"
+)
+ORDER BY
+ "lochierarchy" DESC,
+ CASE WHEN "lochierarchy" = 0 THEN "store"."s_state" END,
+ "rank_within_parent"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 71
+--------------------------------------
+SELECT i_brand_id brand_id,
+ i_brand brand,
+ t_hour,
+ t_minute,
+ Sum(ext_price) ext_price
+FROM item,
+ (SELECT ws_ext_sales_price AS ext_price,
+ ws_sold_date_sk AS sold_date_sk,
+ ws_item_sk AS sold_item_sk,
+ ws_sold_time_sk AS time_sk
+ FROM web_sales,
+ date_dim
+ WHERE d_date_sk = ws_sold_date_sk
+ AND d_moy = 11
+ AND d_year = 2001
+ UNION ALL
+ SELECT cs_ext_sales_price AS ext_price,
+ cs_sold_date_sk AS sold_date_sk,
+ cs_item_sk AS sold_item_sk,
+ cs_sold_time_sk AS time_sk
+ FROM catalog_sales,
+ date_dim
+ WHERE d_date_sk = cs_sold_date_sk
+ AND d_moy = 11
+ AND d_year = 2001
+ UNION ALL
+ SELECT ss_ext_sales_price AS ext_price,
+ ss_sold_date_sk AS sold_date_sk,
+ ss_item_sk AS sold_item_sk,
+ ss_sold_time_sk AS time_sk
+ FROM store_sales,
+ date_dim
+ WHERE d_date_sk = ss_sold_date_sk
+ AND d_moy = 11
+ AND d_year = 2001) AS tmp,
+ time_dim
+WHERE sold_item_sk = i_item_sk
+ AND i_manager_id = 1
+ AND time_sk = t_time_sk
+ AND ( t_meal_time = 'breakfast'
+ OR t_meal_time = 'dinner' )
+GROUP BY i_brand,
+ i_brand_id,
+ t_hour,
+ t_minute
+ORDER BY ext_price DESC,
+ i_brand_id;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_moy" AS "d_moy"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_moy" = 11 AND "date_dim"."d_year" = 2001
+), "cte_4" AS (
+ SELECT
+ "catalog_sales"."cs_ext_sales_price" AS "ext_price",
+ "catalog_sales"."cs_item_sk" AS "sold_item_sk",
+ "catalog_sales"."cs_sold_time_sk" AS "time_sk"
+ FROM "catalog_sales" AS "catalog_sales"
+ CROSS JOIN "date_dim_2" AS "date_dim"
+ WHERE
+ "date_dim"."d_date_sk" = "catalog_sales"."cs_sold_date_sk"
+ UNION ALL
+ SELECT
+ "store_sales"."ss_ext_sales_price" AS "ext_price",
+ "store_sales"."ss_item_sk" AS "sold_item_sk",
+ "store_sales"."ss_sold_time_sk" AS "time_sk"
+ FROM "store_sales" AS "store_sales"
+ CROSS JOIN "date_dim_2" AS "date_dim"
+ WHERE
+ "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+), "tmp" AS (
+ SELECT
+ "web_sales"."ws_ext_sales_price" AS "ext_price",
+ "web_sales"."ws_item_sk" AS "sold_item_sk",
+ "web_sales"."ws_sold_time_sk" AS "time_sk"
+ FROM "web_sales" AS "web_sales"
+ CROSS JOIN "date_dim_2" AS "date_dim"
+ WHERE
+ "date_dim"."d_date_sk" = "web_sales"."ws_sold_date_sk"
+ UNION ALL
+ SELECT
+ "cte_4"."ext_price" AS "ext_price",
+ "cte_4"."sold_item_sk" AS "sold_item_sk",
+ "cte_4"."time_sk" AS "time_sk"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "item"."i_brand_id" AS "brand_id",
+ "item"."i_brand" AS "brand",
+ "time_dim"."t_hour" AS "t_hour",
+ "time_dim"."t_minute" AS "t_minute",
+ SUM("tmp"."ext_price") AS "ext_price"
+FROM "item" AS "item"
+JOIN "tmp" AS "tmp"
+ ON "tmp"."sold_item_sk" = "item"."i_item_sk"
+JOIN "time_dim" AS "time_dim"
+ ON (
+ "time_dim"."t_meal_time" = 'breakfast' OR "time_dim"."t_meal_time" = 'dinner'
+ )
+ AND "tmp"."time_sk" = "time_dim"."t_time_sk"
+WHERE
+ "item"."i_manager_id" = 1
+GROUP BY
+ "item"."i_brand",
+ "item"."i_brand_id",
+ "time_dim"."t_hour",
+ "time_dim"."t_minute"
+ORDER BY
+ "ext_price" DESC,
+ "item"."i_brand_id";
+
+--------------------------------------
+-- TPC-DS 72
+--------------------------------------
+SELECT i_item_desc,
+ w_warehouse_name,
+ d1.d_week_seq,
+ Sum(CASE
+ WHEN p_promo_sk IS NULL THEN 1
+ ELSE 0
+ END) no_promo,
+ Sum(CASE
+ WHEN p_promo_sk IS NOT NULL THEN 1
+ ELSE 0
+ END) promo,
+ Count(*) total_cnt
+FROM catalog_sales
+ JOIN inventory
+ ON ( cs_item_sk = inv_item_sk )
+ JOIN warehouse
+ ON ( w_warehouse_sk = inv_warehouse_sk )
+ JOIN item
+ ON ( i_item_sk = cs_item_sk )
+ JOIN customer_demographics
+ ON ( cs_bill_cdemo_sk = cd_demo_sk )
+ JOIN household_demographics
+ ON ( cs_bill_hdemo_sk = hd_demo_sk )
+ JOIN date_dim d1
+ ON ( cs_sold_date_sk = d1.d_date_sk )
+ JOIN date_dim d2
+ ON ( inv_date_sk = d2.d_date_sk )
+ JOIN date_dim d3
+ ON ( cs_ship_date_sk = d3.d_date_sk )
+ LEFT OUTER JOIN promotion
+ ON ( cs_promo_sk = p_promo_sk )
+ LEFT OUTER JOIN catalog_returns
+ ON ( cr_item_sk = cs_item_sk
+ AND cr_order_number = cs_order_number )
+WHERE d1.d_week_seq = d2.d_week_seq
+ AND inv_quantity_on_hand < cs_quantity
+ AND d3.d_date > d1.d_date + INTERVAL '5' day
+ AND hd_buy_potential = '501-1000'
+ AND d1.d_year = 2002
+ AND cd_marital_status = 'M'
+GROUP BY i_item_desc,
+ w_warehouse_name,
+ d1.d_week_seq
+ORDER BY total_cnt DESC,
+ i_item_desc,
+ w_warehouse_name,
+ d_week_seq
+LIMIT 100;
+SELECT
+ "item"."i_item_desc" AS "i_item_desc",
+ "warehouse"."w_warehouse_name" AS "w_warehouse_name",
+ "date_dim_2"."d_week_seq" AS "d_week_seq",
+ SUM(CASE WHEN "promotion"."p_promo_sk" IS NULL THEN 1 ELSE 0 END) AS "no_promo",
+ SUM(CASE WHEN NOT "promotion"."p_promo_sk" IS NULL THEN 1 ELSE 0 END) AS "promo",
+ COUNT(*) AS "total_cnt"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "inventory" AS "inventory"
+ ON "catalog_sales"."cs_item_sk" = "inventory"."inv_item_sk"
+ AND "inventory"."inv_quantity_on_hand" < "catalog_sales"."cs_quantity"
+JOIN "warehouse" AS "warehouse"
+ ON "warehouse"."w_warehouse_sk" = "inventory"."inv_warehouse_sk"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "catalog_sales"."cs_item_sk"
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "catalog_sales"."cs_bill_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+ AND "customer_demographics"."cd_marital_status" = 'M'
+JOIN "household_demographics" AS "household_demographics"
+ ON "catalog_sales"."cs_bill_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "household_demographics"."hd_buy_potential" = '501-1000'
+JOIN "date_dim" AS "date_dim"
+ ON "inventory"."inv_date_sk" = "date_dim"."d_date_sk"
+JOIN "date_dim" AS "date_dim_2"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim_2"."d_date_sk"
+ AND "date_dim_2"."d_week_seq" = "date_dim"."d_week_seq"
+ AND "date_dim_2"."d_year" = 2002
+JOIN "date_dim" AS "date_dim_3"
+ ON "catalog_sales"."cs_ship_date_sk" = "date_dim_3"."d_date_sk"
+ AND "date_dim_3"."d_date" > CONCAT("date_dim_2"."d_date", INTERVAL '5' "day")
+LEFT JOIN "promotion" AS "promotion"
+ ON "catalog_sales"."cs_promo_sk" = "promotion"."p_promo_sk"
+LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_returns"."cr_item_sk" = "catalog_sales"."cs_item_sk"
+ AND "catalog_returns"."cr_order_number" = "catalog_sales"."cs_order_number"
+GROUP BY
+ "item"."i_item_desc",
+ "warehouse"."w_warehouse_name",
+ "date_dim_2"."d_week_seq"
+ORDER BY
+ "total_cnt" DESC,
+ "i_item_desc",
+ "w_warehouse_name",
+ "d_week_seq"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 73
+--------------------------------------
+SELECT c_last_name,
+ c_first_name,
+ c_salutation,
+ c_preferred_cust_flag,
+ ss_ticket_number,
+ cnt
+FROM (SELECT ss_ticket_number,
+ ss_customer_sk,
+ Count(*) cnt
+ FROM store_sales,
+ date_dim,
+ store,
+ household_demographics
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_store_sk = store.s_store_sk
+ AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND date_dim.d_dom BETWEEN 1 AND 2
+ AND ( household_demographics.hd_buy_potential = '>10000'
+ OR household_demographics.hd_buy_potential = '0-500' )
+ AND household_demographics.hd_vehicle_count > 0
+ AND CASE
+ WHEN household_demographics.hd_vehicle_count > 0 THEN
+ household_demographics.hd_dep_count /
+ household_demographics.hd_vehicle_count
+ ELSE NULL
+ END > 1
+ AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 )
+ AND store.s_county IN ( 'Williamson County', 'Williamson County',
+ 'Williamson County',
+ 'Williamson County'
+ )
+ GROUP BY ss_ticket_number,
+ ss_customer_sk) dj,
+ customer
+WHERE ss_customer_sk = c_customer_sk
+ AND cnt BETWEEN 1 AND 5
+ORDER BY cnt DESC,
+ c_last_name ASC;
+WITH "dj" AS (
+ SELECT
+ "store_sales"."ss_ticket_number" AS "ss_ticket_number",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ COUNT(*) AS "cnt"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_dom" <= 2
+ AND "date_dim"."d_dom" >= 1
+ AND "date_dim"."d_year" IN (2000, 2001, 2002)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store"."s_county" IN ('Williamson County', 'Williamson County', 'Williamson County', 'Williamson County')
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "household_demographics" AS "household_demographics"
+ ON (
+ "household_demographics"."hd_buy_potential" = '0-500'
+ OR "household_demographics"."hd_buy_potential" = '>10000'
+ )
+ AND "household_demographics"."hd_vehicle_count" > 0
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND CASE
+ WHEN "household_demographics"."hd_vehicle_count" > 0
+ THEN "household_demographics"."hd_dep_count" / "household_demographics"."hd_vehicle_count"
+ ELSE NULL
+ END > 1
+ GROUP BY
+ "store_sales"."ss_ticket_number",
+ "store_sales"."ss_customer_sk"
+)
+SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_salutation" AS "c_salutation",
+ "customer"."c_preferred_cust_flag" AS "c_preferred_cust_flag",
+ "dj"."ss_ticket_number" AS "ss_ticket_number",
+ "dj"."cnt" AS "cnt"
+FROM "dj" AS "dj"
+JOIN "customer" AS "customer"
+ ON "dj"."ss_customer_sk" = "customer"."c_customer_sk"
+WHERE
+ "dj"."cnt" <= 5 AND "dj"."cnt" >= 1
+ORDER BY
+ "cnt" DESC,
+ "c_last_name";
+
+--------------------------------------
+-- TPC-DS 74
+--------------------------------------
+WITH year_total
+ AS (SELECT c_customer_id customer_id,
+ c_first_name customer_first_name,
+ c_last_name customer_last_name,
+ d_year AS year1,
+ Sum(ss_net_paid) year_total,
+ 's' sale_type
+ FROM customer,
+ store_sales,
+ date_dim
+ WHERE c_customer_sk = ss_customer_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND d_year IN ( 1999, 1999 + 1 )
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ d_year
+ UNION ALL
+ SELECT c_customer_id customer_id,
+ c_first_name customer_first_name,
+ c_last_name customer_last_name,
+ d_year AS year1,
+ Sum(ws_net_paid) year_total,
+ 'w' sale_type
+ FROM customer,
+ web_sales,
+ date_dim
+ WHERE c_customer_sk = ws_bill_customer_sk
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year IN ( 1999, 1999 + 1 )
+ GROUP BY c_customer_id,
+ c_first_name,
+ c_last_name,
+ d_year)
+SELECT t_s_secyear.customer_id,
+ t_s_secyear.customer_first_name,
+ t_s_secyear.customer_last_name
+FROM year_total t_s_firstyear,
+ year_total t_s_secyear,
+ year_total t_w_firstyear,
+ year_total t_w_secyear
+WHERE t_s_secyear.customer_id = t_s_firstyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_secyear.customer_id
+ AND t_s_firstyear.customer_id = t_w_firstyear.customer_id
+ AND t_s_firstyear.sale_type = 's'
+ AND t_w_firstyear.sale_type = 'w'
+ AND t_s_secyear.sale_type = 's'
+ AND t_w_secyear.sale_type = 'w'
+ AND t_s_firstyear.year1 = 1999
+ AND t_s_secyear.year1 = 1999 + 1
+ AND t_w_firstyear.year1 = 1999
+ AND t_w_secyear.year1 = 1999 + 1
+ AND t_s_firstyear.year_total > 0
+ AND t_w_firstyear.year_total > 0
+ AND CASE
+ WHEN t_w_firstyear.year_total > 0 THEN t_w_secyear.year_total /
+ t_w_firstyear.year_total
+ ELSE NULL
+ END > CASE
+ WHEN t_s_firstyear.year_total > 0 THEN
+ t_s_secyear.year_total /
+ t_s_firstyear.year_total
+ ELSE NULL
+ END
+ORDER BY 1,
+ 2,
+ 3
+LIMIT 100;
+WITH "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_customer_id" AS "c_customer_id",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name"
+ FROM "customer" AS "customer"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_year" IN (1999, 2000)
+), "cte" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "date_dim"."d_year" AS "year1",
+ SUM("store_sales"."ss_net_paid") AS "year_total",
+ 's' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "store_sales" AS "store_sales"
+ ON "customer"."c_customer_sk" = "store_sales"."ss_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "date_dim"."d_year"
+), "cte_2" AS (
+ SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_first_name" AS "customer_first_name",
+ "customer"."c_last_name" AS "customer_last_name",
+ "date_dim"."d_year" AS "year1",
+ SUM("web_sales"."ws_net_paid") AS "year_total",
+ 'w' AS "sale_type"
+ FROM "customer_2" AS "customer"
+ JOIN "web_sales" AS "web_sales"
+ ON "customer"."c_customer_sk" = "web_sales"."ws_bill_customer_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "customer"."c_customer_id",
+ "customer"."c_first_name",
+ "customer"."c_last_name",
+ "date_dim"."d_year"
+), "year_total" AS (
+ SELECT
+ "cte"."customer_id" AS "customer_id",
+ "cte"."customer_first_name" AS "customer_first_name",
+ "cte"."customer_last_name" AS "customer_last_name",
+ "cte"."year1" AS "year1",
+ "cte"."year_total" AS "year_total",
+ "cte"."sale_type" AS "sale_type"
+ FROM "cte" AS "cte"
+ UNION ALL
+ SELECT
+ "cte_2"."customer_id" AS "customer_id",
+ "cte_2"."customer_first_name" AS "customer_first_name",
+ "cte_2"."customer_last_name" AS "customer_last_name",
+ "cte_2"."year1" AS "year1",
+ "cte_2"."year_total" AS "year_total",
+ "cte_2"."sale_type" AS "sale_type"
+ FROM "cte_2" AS "cte_2"
+)
+SELECT
+ "t_s_secyear"."customer_id" AS "customer_id",
+ "t_s_secyear"."customer_first_name" AS "customer_first_name",
+ "t_s_secyear"."customer_last_name" AS "customer_last_name"
+FROM "year_total" AS "t_s_firstyear"
+JOIN "year_total" AS "t_s_secyear"
+ ON "t_s_secyear"."customer_id" = "t_s_firstyear"."customer_id"
+ AND "t_s_secyear"."sale_type" = 's'
+ AND "t_s_secyear"."year1" = 2000
+JOIN "year_total" AS "t_w_secyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_secyear"."customer_id"
+ AND "t_w_secyear"."sale_type" = 'w'
+ AND "t_w_secyear"."year1" = 2000
+JOIN "year_total" AS "t_w_firstyear"
+ ON "t_s_firstyear"."customer_id" = "t_w_firstyear"."customer_id"
+ AND "t_w_firstyear"."sale_type" = 'w'
+ AND "t_w_firstyear"."year1" = 1999
+ AND "t_w_firstyear"."year_total" > 0
+ AND CASE
+ WHEN "t_w_firstyear"."year_total" > 0
+ THEN "t_w_secyear"."year_total" / "t_w_firstyear"."year_total"
+ ELSE NULL
+ END > CASE
+ WHEN "t_s_firstyear"."year_total" > 0
+ THEN "t_s_secyear"."year_total" / "t_s_firstyear"."year_total"
+ ELSE NULL
+ END
+WHERE
+ "t_s_firstyear"."sale_type" = 's'
+ AND "t_s_firstyear"."year1" = 1999
+ AND "t_s_firstyear"."year_total" > 0
+ORDER BY
+ "t_s_secyear"."customer_id",
+ "t_s_secyear"."customer_first_name",
+ "t_s_secyear"."customer_last_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 75
+--------------------------------------
+WITH all_sales
+ AS (SELECT d_year,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ i_manufact_id,
+ Sum(sales_cnt) AS sales_cnt,
+ Sum(sales_amt) AS sales_amt
+ FROM (SELECT d_year,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ i_manufact_id,
+ cs_quantity - COALESCE(cr_return_quantity, 0) AS
+ sales_cnt,
+ cs_ext_sales_price - COALESCE(cr_return_amount, 0.0) AS
+ sales_amt
+ FROM catalog_sales
+ JOIN item
+ ON i_item_sk = cs_item_sk
+ JOIN date_dim
+ ON d_date_sk = cs_sold_date_sk
+ LEFT JOIN catalog_returns
+ ON ( cs_order_number = cr_order_number
+ AND cs_item_sk = cr_item_sk )
+ WHERE i_category = 'Men'
+ UNION
+ SELECT d_year,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ i_manufact_id,
+ ss_quantity - COALESCE(sr_return_quantity, 0) AS
+ sales_cnt,
+ ss_ext_sales_price - COALESCE(sr_return_amt, 0.0) AS
+ sales_amt
+ FROM store_sales
+ JOIN item
+ ON i_item_sk = ss_item_sk
+ JOIN date_dim
+ ON d_date_sk = ss_sold_date_sk
+ LEFT JOIN store_returns
+ ON ( ss_ticket_number = sr_ticket_number
+ AND ss_item_sk = sr_item_sk )
+ WHERE i_category = 'Men'
+ UNION
+ SELECT d_year,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ i_manufact_id,
+ ws_quantity - COALESCE(wr_return_quantity, 0) AS
+ sales_cnt,
+ ws_ext_sales_price - COALESCE(wr_return_amt, 0.0) AS
+ sales_amt
+ FROM web_sales
+ JOIN item
+ ON i_item_sk = ws_item_sk
+ JOIN date_dim
+ ON d_date_sk = ws_sold_date_sk
+ LEFT JOIN web_returns
+ ON ( ws_order_number = wr_order_number
+ AND ws_item_sk = wr_item_sk )
+ WHERE i_category = 'Men') sales_detail
+ GROUP BY d_year,
+ i_brand_id,
+ i_class_id,
+ i_category_id,
+ i_manufact_id)
+SELECT prev_yr.d_year AS prev_year,
+ curr_yr.d_year AS year1,
+ curr_yr.i_brand_id,
+ curr_yr.i_class_id,
+ curr_yr.i_category_id,
+ curr_yr.i_manufact_id,
+ prev_yr.sales_cnt AS prev_yr_cnt,
+ curr_yr.sales_cnt AS curr_yr_cnt,
+ curr_yr.sales_cnt - prev_yr.sales_cnt AS sales_cnt_diff,
+ curr_yr.sales_amt - prev_yr.sales_amt AS sales_amt_diff
+FROM all_sales curr_yr,
+ all_sales prev_yr
+WHERE curr_yr.i_brand_id = prev_yr.i_brand_id
+ AND curr_yr.i_class_id = prev_yr.i_class_id
+ AND curr_yr.i_category_id = prev_yr.i_category_id
+ AND curr_yr.i_manufact_id = prev_yr.i_manufact_id
+ AND curr_yr.d_year = 2002
+ AND prev_yr.d_year = 2002 - 1
+ AND Cast(curr_yr.sales_cnt AS DECIMAL(17, 2)) / Cast(prev_yr.sales_cnt AS
+ DECIMAL(17, 2))
+ < 0.9
+ORDER BY sales_cnt_diff
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ "item"."i_category" AS "i_category",
+ "item"."i_manufact_id" AS "i_manufact_id"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_category" = 'Men'
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+), "cte_4" AS (
+ SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ "item"."i_manufact_id" AS "i_manufact_id",
+ "store_sales"."ss_quantity" - COALESCE("store_returns"."sr_return_quantity", 0) AS "sales_cnt",
+ "store_sales"."ss_ext_sales_price" - COALESCE("store_returns"."sr_return_amt", 0.0) AS "sales_amt"
+ FROM "store_sales" AS "store_sales"
+ JOIN "item_2" AS "item"
+ ON "item"."i_item_sk" = "store_sales"."ss_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "store_sales"."ss_sold_date_sk"
+ LEFT JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+ UNION
+ SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ "item"."i_manufact_id" AS "i_manufact_id",
+ "web_sales"."ws_quantity" - COALESCE("web_returns"."wr_return_quantity", 0) AS "sales_cnt",
+ "web_sales"."ws_ext_sales_price" - COALESCE("web_returns"."wr_return_amt", 0.0) AS "sales_amt"
+ FROM "web_sales" AS "web_sales"
+ JOIN "item_2" AS "item"
+ ON "item"."i_item_sk" = "web_sales"."ws_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "web_sales"."ws_sold_date_sk"
+ LEFT JOIN "web_returns" AS "web_returns"
+ ON "web_sales"."ws_item_sk" = "web_returns"."wr_item_sk"
+ AND "web_sales"."ws_order_number" = "web_returns"."wr_order_number"
+), "sales_detail" AS (
+ SELECT
+ "date_dim"."d_year" AS "d_year",
+ "item"."i_brand_id" AS "i_brand_id",
+ "item"."i_class_id" AS "i_class_id",
+ "item"."i_category_id" AS "i_category_id",
+ "item"."i_manufact_id" AS "i_manufact_id",
+ "catalog_sales"."cs_quantity" - COALESCE("catalog_returns"."cr_return_quantity", 0) AS "sales_cnt",
+ "catalog_sales"."cs_ext_sales_price" - COALESCE("catalog_returns"."cr_return_amount", 0.0) AS "sales_amt"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "item_2" AS "item"
+ ON "item"."i_item_sk" = "catalog_sales"."cs_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "catalog_sales"."cs_sold_date_sk"
+ LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ AND "catalog_sales"."cs_order_number" = "catalog_returns"."cr_order_number"
+ UNION
+ SELECT
+ "cte_4"."d_year" AS "d_year",
+ "cte_4"."i_brand_id" AS "i_brand_id",
+ "cte_4"."i_class_id" AS "i_class_id",
+ "cte_4"."i_category_id" AS "i_category_id",
+ "cte_4"."i_manufact_id" AS "i_manufact_id",
+ "cte_4"."sales_cnt" AS "sales_cnt",
+ "cte_4"."sales_amt" AS "sales_amt"
+ FROM "cte_4" AS "cte_4"
+), "all_sales" AS (
+ SELECT
+ "sales_detail"."d_year" AS "d_year",
+ "sales_detail"."i_brand_id" AS "i_brand_id",
+ "sales_detail"."i_class_id" AS "i_class_id",
+ "sales_detail"."i_category_id" AS "i_category_id",
+ "sales_detail"."i_manufact_id" AS "i_manufact_id",
+ SUM("sales_detail"."sales_cnt") AS "sales_cnt",
+ SUM("sales_detail"."sales_amt") AS "sales_amt"
+ FROM "sales_detail" AS "sales_detail"
+ GROUP BY
+ "sales_detail"."d_year",
+ "sales_detail"."i_brand_id",
+ "sales_detail"."i_class_id",
+ "sales_detail"."i_category_id",
+ "sales_detail"."i_manufact_id"
+)
+SELECT
+ "prev_yr"."d_year" AS "prev_year",
+ "curr_yr"."d_year" AS "year1",
+ "curr_yr"."i_brand_id" AS "i_brand_id",
+ "curr_yr"."i_class_id" AS "i_class_id",
+ "curr_yr"."i_category_id" AS "i_category_id",
+ "curr_yr"."i_manufact_id" AS "i_manufact_id",
+ "prev_yr"."sales_cnt" AS "prev_yr_cnt",
+ "curr_yr"."sales_cnt" AS "curr_yr_cnt",
+ "curr_yr"."sales_cnt" - "prev_yr"."sales_cnt" AS "sales_cnt_diff",
+ "curr_yr"."sales_amt" - "prev_yr"."sales_amt" AS "sales_amt_diff"
+FROM "all_sales" AS "curr_yr"
+JOIN "all_sales" AS "prev_yr"
+ ON "curr_yr"."i_brand_id" = "prev_yr"."i_brand_id"
+ AND "curr_yr"."i_category_id" = "prev_yr"."i_category_id"
+ AND "curr_yr"."i_class_id" = "prev_yr"."i_class_id"
+ AND "curr_yr"."i_manufact_id" = "prev_yr"."i_manufact_id"
+ AND "prev_yr"."d_year" = 2001
+ AND CAST("curr_yr"."sales_cnt" AS DECIMAL(17, 2)) / CAST("prev_yr"."sales_cnt" AS DECIMAL(17, 2)) < 0.9
+WHERE
+ "curr_yr"."d_year" = 2002
+ORDER BY
+ "sales_cnt_diff"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 76
+--------------------------------------
+SELECT channel,
+ col_name,
+ d_year,
+ d_qoy,
+ i_category,
+ Count(*) sales_cnt,
+ Sum(ext_sales_price) sales_amt
+FROM (SELECT 'store' AS channel,
+ 'ss_hdemo_sk' col_name,
+ d_year,
+ d_qoy,
+ i_category,
+ ss_ext_sales_price ext_sales_price
+ FROM store_sales,
+ item,
+ date_dim
+ WHERE ss_hdemo_sk IS NULL
+ AND ss_sold_date_sk = d_date_sk
+ AND ss_item_sk = i_item_sk
+ UNION ALL
+ SELECT 'web' AS channel,
+ 'ws_ship_hdemo_sk' col_name,
+ d_year,
+ d_qoy,
+ i_category,
+ ws_ext_sales_price ext_sales_price
+ FROM web_sales,
+ item,
+ date_dim
+ WHERE ws_ship_hdemo_sk IS NULL
+ AND ws_sold_date_sk = d_date_sk
+ AND ws_item_sk = i_item_sk
+ UNION ALL
+ SELECT 'catalog' AS channel,
+ 'cs_warehouse_sk' col_name,
+ d_year,
+ d_qoy,
+ i_category,
+ cs_ext_sales_price ext_sales_price
+ FROM catalog_sales,
+ item,
+ date_dim
+ WHERE cs_warehouse_sk IS NULL
+ AND cs_sold_date_sk = d_date_sk
+ AND cs_item_sk = i_item_sk) foo
+GROUP BY channel,
+ col_name,
+ d_year,
+ d_qoy,
+ i_category
+ORDER BY channel,
+ col_name,
+ d_year,
+ d_qoy,
+ i_category
+LIMIT 100;
+WITH "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_category" AS "i_category"
+ FROM "item" AS "item"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy"
+ FROM "date_dim" AS "date_dim"
+), "cte_4" AS (
+ SELECT
+ 'web' AS "channel",
+ 'ws_ship_hdemo_sk' AS "col_name",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "item"."i_category" AS "i_category",
+ "web_sales"."ws_ext_sales_price" AS "ext_sales_price"
+ FROM "web_sales" AS "web_sales"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "web_sales"."ws_ship_hdemo_sk" IS NULL
+ UNION ALL
+ SELECT
+ 'catalog' AS "channel",
+ 'cs_warehouse_sk' AS "col_name",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "item"."i_category" AS "i_category",
+ "catalog_sales"."cs_ext_sales_price" AS "ext_sales_price"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "catalog_sales"."cs_warehouse_sk" IS NULL
+), "foo" AS (
+ SELECT
+ 'store' AS "channel",
+ 'ss_hdemo_sk' AS "col_name",
+ "date_dim"."d_year" AS "d_year",
+ "date_dim"."d_qoy" AS "d_qoy",
+ "item"."i_category" AS "i_category",
+ "store_sales"."ss_ext_sales_price" AS "ext_sales_price"
+ FROM "store_sales" AS "store_sales"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "store_sales"."ss_hdemo_sk" IS NULL
+ UNION ALL
+ SELECT
+ "cte_4"."channel" AS "channel",
+ "cte_4"."col_name" AS "col_name",
+ "cte_4"."d_year" AS "d_year",
+ "cte_4"."d_qoy" AS "d_qoy",
+ "cte_4"."i_category" AS "i_category",
+ "cte_4"."ext_sales_price" AS "ext_sales_price"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "foo"."channel" AS "channel",
+ "foo"."col_name" AS "col_name",
+ "foo"."d_year" AS "d_year",
+ "foo"."d_qoy" AS "d_qoy",
+ "foo"."i_category" AS "i_category",
+ COUNT(*) AS "sales_cnt",
+ SUM("foo"."ext_sales_price") AS "sales_amt"
+FROM "foo" AS "foo"
+GROUP BY
+ "foo"."channel",
+ "foo"."col_name",
+ "foo"."d_year",
+ "foo"."d_qoy",
+ "foo"."i_category"
+ORDER BY
+ "channel",
+ "col_name",
+ "d_year",
+ "d_qoy",
+ "i_category"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 77
+--------------------------------------
+
+WITH ss AS
+(
+ SELECT s_store_sk,
+ Sum(ss_ext_sales_price) AS sales,
+ Sum(ss_net_profit) AS profit
+ FROM store_sales,
+ date_dim,
+ store
+ WHERE ss_sold_date_sk = d_date_sk
+ AND d_date BETWEEN Cast('2001-08-16' AS DATE) AND (
+ Cast('2001-08-16' AS DATE) + INTERVAL '30' day)
+ AND ss_store_sk = s_store_sk
+ GROUP BY s_store_sk) , sr AS
+(
+ SELECT s_store_sk,
+ sum(sr_return_amt) AS returns1,
+ sum(sr_net_loss) AS profit_loss
+ FROM store_returns,
+ date_dim,
+ store
+ WHERE sr_returned_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2001-08-16' AS date) AND (
+ cast('2001-08-16' AS date) + INTERVAL '30' day)
+ AND sr_store_sk = s_store_sk
+ GROUP BY s_store_sk), cs AS
+(
+ SELECT cs_call_center_sk,
+ sum(cs_ext_sales_price) AS sales,
+ sum(cs_net_profit) AS profit
+ FROM catalog_sales,
+ date_dim
+ WHERE cs_sold_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2001-08-16' AS date) AND (
+ cast('2001-08-16' AS date) + INTERVAL '30' day)
+ GROUP BY cs_call_center_sk ), cr AS
+(
+ SELECT cr_call_center_sk,
+ sum(cr_return_amount) AS returns1,
+ sum(cr_net_loss) AS profit_loss
+ FROM catalog_returns,
+ date_dim
+ WHERE cr_returned_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2001-08-16' AS date) AND (
+ cast('2001-08-16' AS date) + INTERVAL '30' day)
+ GROUP BY cr_call_center_sk ), ws AS
+(
+ SELECT wp_web_page_sk,
+ sum(ws_ext_sales_price) AS sales,
+ sum(ws_net_profit) AS profit
+ FROM web_sales,
+ date_dim,
+ web_page
+ WHERE ws_sold_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2001-08-16' AS date) AND (
+ cast('2001-08-16' AS date) + INTERVAL '30' day)
+ AND ws_web_page_sk = wp_web_page_sk
+ GROUP BY wp_web_page_sk), wr AS
+(
+ SELECT wp_web_page_sk,
+ sum(wr_return_amt) AS returns1,
+ sum(wr_net_loss) AS profit_loss
+ FROM web_returns,
+ date_dim,
+ web_page
+ WHERE wr_returned_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2001-08-16' AS date) AND (
+ cast('2001-08-16' AS date) + INTERVAL '30' day)
+ AND wr_web_page_sk = wp_web_page_sk
+ GROUP BY wp_web_page_sk)
+SELECT
+ channel ,
+ id ,
+ sum(sales) AS sales ,
+ sum(returns1) AS returns1 ,
+ sum(profit) AS profit
+FROM (
+ SELECT 'store channel' AS channel ,
+ ss.s_store_sk AS id ,
+ sales ,
+ COALESCE(returns1, 0) AS returns1 ,
+ (profit - COALESCE(profit_loss,0)) AS profit
+ FROM ss
+ LEFT JOIN sr
+ ON ss.s_store_sk = sr.s_store_sk
+ UNION ALL
+ SELECT 'catalog channel' AS channel ,
+ cs_call_center_sk AS id ,
+ sales ,
+ returns1 ,
+ (profit - profit_loss) AS profit
+ FROM cs ,
+ cr
+ UNION ALL
+ SELECT 'web channel' AS channel ,
+ ws.wp_web_page_sk AS id ,
+ sales ,
+ COALESCE(returns1, 0) returns1 ,
+ (profit - COALESCE(profit_loss,0)) AS profit
+ FROM ws
+ LEFT JOIN wr
+ ON ws.wp_web_page_sk = wr.wp_web_page_sk ) x
+GROUP BY rollup (channel, id)
+ORDER BY channel ,
+ id
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ CAST("date_dim"."d_date" AS DATE) <= CAST('2001-09-15' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2001-08-16' AS DATE)
+), "store_2" AS (
+ SELECT
+ "store"."s_store_sk" AS "s_store_sk"
+ FROM "store" AS "store"
+), "ss" AS (
+ SELECT
+ "store"."s_store_sk" AS "s_store_sk",
+ SUM("store_sales"."ss_ext_sales_price") AS "sales",
+ SUM("store_sales"."ss_net_profit") AS "profit"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store_2" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ GROUP BY
+ "store"."s_store_sk"
+), "sr" AS (
+ SELECT
+ "store"."s_store_sk" AS "s_store_sk",
+ SUM("store_returns"."sr_return_amt") AS "returns1",
+ SUM("store_returns"."sr_net_loss") AS "profit_loss"
+ FROM "store_returns" AS "store_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_returns"."sr_returned_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store_2" AS "store"
+ ON "store_returns"."sr_store_sk" = "store"."s_store_sk"
+ GROUP BY
+ "store"."s_store_sk"
+), "cs" AS (
+ SELECT
+ "catalog_sales"."cs_call_center_sk" AS "cs_call_center_sk",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "sales",
+ SUM("catalog_sales"."cs_net_profit") AS "profit"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_call_center_sk"
+), "cr" AS (
+ SELECT
+ SUM("catalog_returns"."cr_return_amount") AS "returns1",
+ SUM("catalog_returns"."cr_net_loss") AS "profit_loss"
+ FROM "catalog_returns" AS "catalog_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_returns"."cr_returned_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_returns"."cr_call_center_sk"
+), "web_page_2" AS (
+ SELECT
+ "web_page"."wp_web_page_sk" AS "wp_web_page_sk"
+ FROM "web_page" AS "web_page"
+), "ws" AS (
+ SELECT
+ "web_page"."wp_web_page_sk" AS "wp_web_page_sk",
+ SUM("web_sales"."ws_ext_sales_price") AS "sales",
+ SUM("web_sales"."ws_net_profit") AS "profit"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "web_page_2" AS "web_page"
+ ON "web_sales"."ws_web_page_sk" = "web_page"."wp_web_page_sk"
+ GROUP BY
+ "web_page"."wp_web_page_sk"
+), "wr" AS (
+ SELECT
+ "web_page"."wp_web_page_sk" AS "wp_web_page_sk",
+ SUM("web_returns"."wr_return_amt") AS "returns1",
+ SUM("web_returns"."wr_net_loss") AS "profit_loss"
+ FROM "web_returns" AS "web_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_returns"."wr_returned_date_sk" = "date_dim"."d_date_sk"
+ JOIN "web_page_2" AS "web_page"
+ ON "web_returns"."wr_web_page_sk" = "web_page"."wp_web_page_sk"
+ GROUP BY
+ "web_page"."wp_web_page_sk"
+), "cte_4" AS (
+ SELECT
+ 'catalog channel' AS "channel",
+ "cs"."cs_call_center_sk" AS "id",
+ "cs"."sales" AS "sales",
+ "cr"."returns1" AS "returns1",
+ "cs"."profit" - "cr"."profit_loss" AS "profit"
+ FROM "cs"
+ CROSS JOIN "cr"
+ UNION ALL
+ SELECT
+ 'web channel' AS "channel",
+ "ws"."wp_web_page_sk" AS "id",
+ "ws"."sales" AS "sales",
+ COALESCE("wr"."returns1", 0) AS "returns1",
+ "ws"."profit" - COALESCE("wr"."profit_loss", 0) AS "profit"
+ FROM "ws"
+ LEFT JOIN "wr"
+ ON "ws"."wp_web_page_sk" = "wr"."wp_web_page_sk"
+), "x" AS (
+ SELECT
+ 'store channel' AS "channel",
+ "ss"."s_store_sk" AS "id",
+ "ss"."sales" AS "sales",
+ COALESCE("sr"."returns1", 0) AS "returns1",
+ "ss"."profit" - COALESCE("sr"."profit_loss", 0) AS "profit"
+ FROM "ss"
+ LEFT JOIN "sr"
+ ON "ss"."s_store_sk" = "sr"."s_store_sk"
+ UNION ALL
+ SELECT
+ "cte_4"."channel" AS "channel",
+ "cte_4"."id" AS "id",
+ "cte_4"."sales" AS "sales",
+ "cte_4"."returns1" AS "returns1",
+ "cte_4"."profit" AS "profit"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "x"."channel" AS "channel",
+ "x"."id" AS "id",
+ SUM("x"."sales") AS "sales",
+ SUM("x"."returns1") AS "returns1",
+ SUM("x"."profit") AS "profit"
+FROM "x" AS "x"
+GROUP BY
+ROLLUP (
+ "x"."channel",
+ "x"."id"
+)
+ORDER BY
+ "channel",
+ "id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 78
+--------------------------------------
+WITH ws
+ AS (SELECT d_year AS ws_sold_year,
+ ws_item_sk,
+ ws_bill_customer_sk ws_customer_sk,
+ Sum(ws_quantity) ws_qty,
+ Sum(ws_wholesale_cost) ws_wc,
+ Sum(ws_sales_price) ws_sp
+ FROM web_sales
+ LEFT JOIN web_returns
+ ON wr_order_number = ws_order_number
+ AND ws_item_sk = wr_item_sk
+ JOIN date_dim
+ ON ws_sold_date_sk = d_date_sk
+ WHERE wr_order_number IS NULL
+ GROUP BY d_year,
+ ws_item_sk,
+ ws_bill_customer_sk),
+ cs
+ AS (SELECT d_year AS cs_sold_year,
+ cs_item_sk,
+ cs_bill_customer_sk cs_customer_sk,
+ Sum(cs_quantity) cs_qty,
+ Sum(cs_wholesale_cost) cs_wc,
+ Sum(cs_sales_price) cs_sp
+ FROM catalog_sales
+ LEFT JOIN catalog_returns
+ ON cr_order_number = cs_order_number
+ AND cs_item_sk = cr_item_sk
+ JOIN date_dim
+ ON cs_sold_date_sk = d_date_sk
+ WHERE cr_order_number IS NULL
+ GROUP BY d_year,
+ cs_item_sk,
+ cs_bill_customer_sk),
+ ss
+ AS (SELECT d_year AS ss_sold_year,
+ ss_item_sk,
+ ss_customer_sk,
+ Sum(ss_quantity) ss_qty,
+ Sum(ss_wholesale_cost) ss_wc,
+ Sum(ss_sales_price) ss_sp
+ FROM store_sales
+ LEFT JOIN store_returns
+ ON sr_ticket_number = ss_ticket_number
+ AND ss_item_sk = sr_item_sk
+ JOIN date_dim
+ ON ss_sold_date_sk = d_date_sk
+ WHERE sr_ticket_number IS NULL
+ GROUP BY d_year,
+ ss_item_sk,
+ ss_customer_sk)
+SELECT ss_item_sk,
+ Round(ss_qty / ( COALESCE(ws_qty + cs_qty, 1) ), 2) ratio,
+ ss_qty store_qty,
+ ss_wc
+ store_wholesale_cost,
+ ss_sp
+ store_sales_price,
+ COALESCE(ws_qty, 0) + COALESCE(cs_qty, 0)
+ other_chan_qty,
+ COALESCE(ws_wc, 0) + COALESCE(cs_wc, 0)
+ other_chan_wholesale_cost,
+ COALESCE(ws_sp, 0) + COALESCE(cs_sp, 0)
+ other_chan_sales_price
+FROM ss
+ LEFT JOIN ws
+ ON ( ws_sold_year = ss_sold_year
+ AND ws_item_sk = ss_item_sk
+ AND ws_customer_sk = ss_customer_sk )
+ LEFT JOIN cs
+ ON ( cs_sold_year = ss_sold_year
+ AND cs_item_sk = cs_item_sk
+ AND cs_customer_sk = ss_customer_sk )
+WHERE COALESCE(ws_qty, 0) > 0
+ AND COALESCE(cs_qty, 0) > 0
+ AND ss_sold_year = 1999
+ORDER BY ss_item_sk,
+ ss_qty DESC,
+ ss_wc DESC,
+ ss_sp DESC,
+ other_chan_qty,
+ other_chan_wholesale_cost,
+ other_chan_sales_price,
+ Round(ss_qty / ( COALESCE(ws_qty + cs_qty, 1) ), 2)
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_year" AS "d_year"
+ FROM "date_dim" AS "date_dim"
+), "ws" AS (
+ SELECT
+ "date_dim"."d_year" AS "ws_sold_year",
+ "web_sales"."ws_item_sk" AS "ws_item_sk",
+ "web_sales"."ws_bill_customer_sk" AS "ws_customer_sk",
+ SUM("web_sales"."ws_quantity") AS "ws_qty",
+ SUM("web_sales"."ws_wholesale_cost") AS "ws_wc",
+ SUM("web_sales"."ws_sales_price") AS "ws_sp"
+ FROM "web_sales" AS "web_sales"
+ LEFT JOIN "web_returns" AS "web_returns"
+ ON "web_returns"."wr_order_number" = "web_sales"."ws_order_number"
+ AND "web_sales"."ws_item_sk" = "web_returns"."wr_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "web_returns"."wr_order_number" IS NULL
+ GROUP BY
+ "date_dim"."d_year",
+ "web_sales"."ws_item_sk",
+ "web_sales"."ws_bill_customer_sk"
+), "cs" AS (
+ SELECT
+ "date_dim"."d_year" AS "cs_sold_year",
+ "catalog_sales"."cs_item_sk" AS "cs_item_sk",
+ "catalog_sales"."cs_bill_customer_sk" AS "cs_customer_sk",
+ SUM("catalog_sales"."cs_quantity") AS "cs_qty",
+ SUM("catalog_sales"."cs_wholesale_cost") AS "cs_wc",
+ SUM("catalog_sales"."cs_sales_price") AS "cs_sp"
+ FROM "catalog_sales" AS "catalog_sales"
+ LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_returns"."cr_order_number" = "catalog_sales"."cs_order_number"
+ AND "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "catalog_returns"."cr_order_number" IS NULL
+ GROUP BY
+ "date_dim"."d_year",
+ "catalog_sales"."cs_item_sk",
+ "catalog_sales"."cs_bill_customer_sk"
+), "ss" AS (
+ SELECT
+ "date_dim"."d_year" AS "ss_sold_year",
+ "store_sales"."ss_item_sk" AS "ss_item_sk",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ SUM("store_sales"."ss_quantity") AS "ss_qty",
+ SUM("store_sales"."ss_wholesale_cost") AS "ss_wc",
+ SUM("store_sales"."ss_sales_price") AS "ss_sp"
+ FROM "store_sales" AS "store_sales"
+ LEFT JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_ticket_number" = "store_sales"."ss_ticket_number"
+ AND "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ WHERE
+ "store_returns"."sr_ticket_number" IS NULL
+ GROUP BY
+ "date_dim"."d_year",
+ "store_sales"."ss_item_sk",
+ "store_sales"."ss_customer_sk"
+)
+SELECT
+ "ss"."ss_item_sk" AS "ss_item_sk",
+ ROUND("ss"."ss_qty" / COALESCE("ws"."ws_qty" + "cs"."cs_qty", 1), 2) AS "ratio",
+ "ss"."ss_qty" AS "store_qty",
+ "ss"."ss_wc" AS "store_wholesale_cost",
+ "ss"."ss_sp" AS "store_sales_price",
+ COALESCE("ws"."ws_qty", 0) + COALESCE("cs"."cs_qty", 0) AS "other_chan_qty",
+ COALESCE("ws"."ws_wc", 0) + COALESCE("cs"."cs_wc", 0) AS "other_chan_wholesale_cost",
+ COALESCE("ws"."ws_sp", 0) + COALESCE("cs"."cs_sp", 0) AS "other_chan_sales_price"
+FROM "ss"
+LEFT JOIN "ws"
+ ON "ws"."ws_customer_sk" = "ss"."ss_customer_sk"
+ AND "ws"."ws_item_sk" = "ss"."ss_item_sk"
+ AND "ws"."ws_sold_year" = "ss"."ss_sold_year"
+LEFT JOIN "cs"
+ ON "cs"."cs_customer_sk" = "ss"."ss_customer_sk"
+ AND "cs"."cs_item_sk" = "cs"."cs_item_sk"
+ AND "cs"."cs_sold_year" = "ss"."ss_sold_year"
+WHERE
+ "ss"."ss_sold_year" = 1999
+ AND COALESCE("cs"."cs_qty", 0) > 0
+ AND COALESCE("ws"."ws_qty", 0) > 0
+ORDER BY
+ "ss_item_sk",
+ "ss"."ss_qty" DESC,
+ "ss"."ss_wc" DESC,
+ "ss"."ss_sp" DESC,
+ "other_chan_qty",
+ "other_chan_wholesale_cost",
+ "other_chan_sales_price",
+ ROUND("ss"."ss_qty" / COALESCE("ws"."ws_qty" + "cs"."cs_qty", 1), 2)
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 79
+--------------------------------------
+SELECT c_last_name,
+ c_first_name,
+ Substr(s_city, 1, 30),
+ ss_ticket_number,
+ amt,
+ profit
+FROM (SELECT ss_ticket_number,
+ ss_customer_sk,
+ store.s_city,
+ Sum(ss_coupon_amt) amt,
+ Sum(ss_net_profit) profit
+ FROM store_sales,
+ date_dim,
+ store,
+ household_demographics
+ WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ AND store_sales.ss_store_sk = store.s_store_sk
+ AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND ( household_demographics.hd_dep_count = 8
+ OR household_demographics.hd_vehicle_count > 4 )
+ AND date_dim.d_dow = 1
+ AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 )
+ AND store.s_number_employees BETWEEN 200 AND 295
+ GROUP BY ss_ticket_number,
+ ss_customer_sk,
+ ss_addr_sk,
+ store.s_city) ms,
+ customer
+WHERE ss_customer_sk = c_customer_sk
+ORDER BY c_last_name,
+ c_first_name,
+ Substr(s_city, 1, 30),
+ profit
+LIMIT 100;
+WITH "ms" AS (
+ SELECT
+ "store_sales"."ss_ticket_number" AS "ss_ticket_number",
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ "store"."s_city" AS "s_city",
+ SUM("store_sales"."ss_coupon_amt") AS "amt",
+ SUM("store_sales"."ss_net_profit") AS "profit"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_dow" = 1
+ AND "date_dim"."d_year" IN (2000, 2001, 2002)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store"."s_number_employees" <= 295
+ AND "store"."s_number_employees" >= 200
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "household_demographics" AS "household_demographics"
+ ON (
+ "household_demographics"."hd_dep_count" = 8
+ OR "household_demographics"."hd_vehicle_count" > 4
+ )
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ GROUP BY
+ "store_sales"."ss_ticket_number",
+ "store_sales"."ss_customer_sk",
+ "store_sales"."ss_addr_sk",
+ "store"."s_city"
+)
+SELECT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ SUBSTR("ms"."s_city", 1, 30) AS "_col_2",
+ "ms"."ss_ticket_number" AS "ss_ticket_number",
+ "ms"."amt" AS "amt",
+ "ms"."profit" AS "profit"
+FROM "ms" AS "ms"
+JOIN "customer" AS "customer"
+ ON "ms"."ss_customer_sk" = "customer"."c_customer_sk"
+ORDER BY
+ "c_last_name",
+ "c_first_name",
+ SUBSTR("ms"."s_city", 1, 30),
+ "profit"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 80
+--------------------------------------
+WITH ssr AS
+(
+ SELECT s_store_id AS store_id,
+ Sum(ss_ext_sales_price) AS sales,
+ Sum(COALESCE(sr_return_amt, 0)) AS returns1,
+ Sum(ss_net_profit - COALESCE(sr_net_loss, 0)) AS profit
+ FROM store_sales
+ LEFT OUTER JOIN store_returns
+ ON (
+ ss_item_sk = sr_item_sk
+ AND ss_ticket_number = sr_ticket_number),
+ date_dim,
+ store,
+ item,
+ promotion
+ WHERE ss_sold_date_sk = d_date_sk
+ AND d_date BETWEEN Cast('2000-08-26' AS DATE) AND (
+ Cast('2000-08-26' AS DATE) + INTERVAL '30' day)
+ AND ss_store_sk = s_store_sk
+ AND ss_item_sk = i_item_sk
+ AND i_current_price > 50
+ AND ss_promo_sk = p_promo_sk
+ AND p_channel_tv = 'N'
+ GROUP BY s_store_id) , csr AS
+(
+ SELECT cp_catalog_page_id AS catalog_page_id,
+ sum(cs_ext_sales_price) AS sales,
+ sum(COALESCE(cr_return_amount, 0)) AS returns1,
+ sum(cs_net_profit - COALESCE(cr_net_loss, 0)) AS profit
+ FROM catalog_sales
+ LEFT OUTER JOIN catalog_returns
+ ON (
+ cs_item_sk = cr_item_sk
+ AND cs_order_number = cr_order_number),
+ date_dim,
+ catalog_page,
+ item,
+ promotion
+ WHERE cs_sold_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2000-08-26' AS date) AND (
+ cast('2000-08-26' AS date) + INTERVAL '30' day)
+ AND cs_catalog_page_sk = cp_catalog_page_sk
+ AND cs_item_sk = i_item_sk
+ AND i_current_price > 50
+ AND cs_promo_sk = p_promo_sk
+ AND p_channel_tv = 'N'
+ GROUP BY cp_catalog_page_id) , wsr AS
+(
+ SELECT web_site_id,
+ sum(ws_ext_sales_price) AS sales,
+ sum(COALESCE(wr_return_amt, 0)) AS returns1,
+ sum(ws_net_profit - COALESCE(wr_net_loss, 0)) AS profit
+ FROM web_sales
+ LEFT OUTER JOIN web_returns
+ ON (
+ ws_item_sk = wr_item_sk
+ AND ws_order_number = wr_order_number),
+ date_dim,
+ web_site,
+ item,
+ promotion
+ WHERE ws_sold_date_sk = d_date_sk
+ AND d_date BETWEEN cast('2000-08-26' AS date) AND (
+ cast('2000-08-26' AS date) + INTERVAL '30' day)
+ AND ws_web_site_sk = web_site_sk
+ AND ws_item_sk = i_item_sk
+ AND i_current_price > 50
+ AND ws_promo_sk = p_promo_sk
+ AND p_channel_tv = 'N'
+ GROUP BY web_site_id)
+SELECT
+ channel ,
+ id ,
+ sum(sales) AS sales ,
+ sum(returns1) AS returns1 ,
+ sum(profit) AS profit
+FROM (
+ SELECT 'store channel' AS channel ,
+ 'store'
+ || store_id AS id ,
+ sales ,
+ returns1 ,
+ profit
+ FROM ssr
+ UNION ALL
+ SELECT 'catalog channel' AS channel ,
+ 'catalog_page'
+ || catalog_page_id AS id ,
+ sales ,
+ returns1 ,
+ profit
+ FROM csr
+ UNION ALL
+ SELECT 'web channel' AS channel ,
+ 'web_site'
+ || web_site_id AS id ,
+ sales ,
+ returns1 ,
+ profit
+ FROM wsr ) x
+GROUP BY rollup (channel, id)
+ORDER BY channel ,
+ id
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ CAST("date_dim"."d_date" AS DATE) <= CAST('2000-09-25' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2000-08-26' AS DATE)
+), "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_current_price" AS "i_current_price"
+ FROM "item" AS "item"
+ WHERE
+ "item"."i_current_price" > 50
+), "promotion_2" AS (
+ SELECT
+ "promotion"."p_promo_sk" AS "p_promo_sk",
+ "promotion"."p_channel_tv" AS "p_channel_tv"
+ FROM "promotion" AS "promotion"
+ WHERE
+ "promotion"."p_channel_tv" = 'N'
+), "ssr" AS (
+ SELECT
+ "store"."s_store_id" AS "store_id",
+ SUM("store_sales"."ss_ext_sales_price") AS "sales",
+ SUM(COALESCE("store_returns"."sr_return_amt", 0)) AS "returns1",
+ SUM("store_sales"."ss_net_profit" - COALESCE("store_returns"."sr_net_loss", 0)) AS "profit"
+ FROM "store_sales" AS "store_sales"
+ LEFT JOIN "store_returns" AS "store_returns"
+ ON "store_sales"."ss_item_sk" = "store_returns"."sr_item_sk"
+ AND "store_sales"."ss_ticket_number" = "store_returns"."sr_ticket_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ JOIN "item_2" AS "item"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "promotion_2" AS "promotion"
+ ON "store_sales"."ss_promo_sk" = "promotion"."p_promo_sk"
+ GROUP BY
+ "store"."s_store_id"
+), "csr" AS (
+ SELECT
+ "catalog_page"."cp_catalog_page_id" AS "catalog_page_id",
+ SUM("catalog_sales"."cs_ext_sales_price") AS "sales",
+ SUM(COALESCE("catalog_returns"."cr_return_amount", 0)) AS "returns1",
+ SUM("catalog_sales"."cs_net_profit" - COALESCE("catalog_returns"."cr_net_loss", 0)) AS "profit"
+ FROM "catalog_sales" AS "catalog_sales"
+ LEFT JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_sales"."cs_item_sk" = "catalog_returns"."cr_item_sk"
+ AND "catalog_sales"."cs_order_number" = "catalog_returns"."cr_order_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "catalog_page" AS "catalog_page"
+ ON "catalog_sales"."cs_catalog_page_sk" = "catalog_page"."cp_catalog_page_sk"
+ JOIN "item_2" AS "item"
+ ON "catalog_sales"."cs_item_sk" = "item"."i_item_sk"
+ JOIN "promotion_2" AS "promotion"
+ ON "catalog_sales"."cs_promo_sk" = "promotion"."p_promo_sk"
+ GROUP BY
+ "catalog_page"."cp_catalog_page_id"
+), "wsr" AS (
+ SELECT
+ "web_site"."web_site_id" AS "web_site_id",
+ SUM("web_sales"."ws_ext_sales_price") AS "sales",
+ SUM(COALESCE("web_returns"."wr_return_amt", 0)) AS "returns1",
+ SUM("web_sales"."ws_net_profit" - COALESCE("web_returns"."wr_net_loss", 0)) AS "profit"
+ FROM "web_sales" AS "web_sales"
+ LEFT JOIN "web_returns" AS "web_returns"
+ ON "web_sales"."ws_item_sk" = "web_returns"."wr_item_sk"
+ AND "web_sales"."ws_order_number" = "web_returns"."wr_order_number"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "web_site" AS "web_site"
+ ON "web_sales"."ws_web_site_sk" = "web_site"."web_site_sk"
+ JOIN "item_2" AS "item"
+ ON "web_sales"."ws_item_sk" = "item"."i_item_sk"
+ JOIN "promotion_2" AS "promotion"
+ ON "web_sales"."ws_promo_sk" = "promotion"."p_promo_sk"
+ GROUP BY
+ "web_site"."web_site_id"
+), "cte_4" AS (
+ SELECT
+ 'catalog channel' AS "channel",
+ 'catalog_page' || "csr"."catalog_page_id" AS "id",
+ "csr"."sales" AS "sales",
+ "csr"."returns1" AS "returns1",
+ "csr"."profit" AS "profit"
+ FROM "csr"
+ UNION ALL
+ SELECT
+ 'web channel' AS "channel",
+ 'web_site' || "wsr"."web_site_id" AS "id",
+ "wsr"."sales" AS "sales",
+ "wsr"."returns1" AS "returns1",
+ "wsr"."profit" AS "profit"
+ FROM "wsr"
+), "x" AS (
+ SELECT
+ 'store channel' AS "channel",
+ 'store' || "ssr"."store_id" AS "id",
+ "ssr"."sales" AS "sales",
+ "ssr"."returns1" AS "returns1",
+ "ssr"."profit" AS "profit"
+ FROM "ssr"
+ UNION ALL
+ SELECT
+ "cte_4"."channel" AS "channel",
+ "cte_4"."id" AS "id",
+ "cte_4"."sales" AS "sales",
+ "cte_4"."returns1" AS "returns1",
+ "cte_4"."profit" AS "profit"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ "x"."channel" AS "channel",
+ "x"."id" AS "id",
+ SUM("x"."sales") AS "sales",
+ SUM("x"."returns1") AS "returns1",
+ SUM("x"."profit") AS "profit"
+FROM "x" AS "x"
+GROUP BY
+ROLLUP (
+ "x"."channel",
+ "x"."id"
+)
+ORDER BY
+ "channel",
+ "id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 81
+--------------------------------------
+
+WITH customer_total_return
+ AS (SELECT cr_returning_customer_sk AS ctr_customer_sk,
+ ca_state AS ctr_state,
+ Sum(cr_return_amt_inc_tax) AS ctr_total_return
+ FROM catalog_returns,
+ date_dim,
+ customer_address
+ WHERE cr_returned_date_sk = d_date_sk
+ AND d_year = 1999
+ AND cr_returning_addr_sk = ca_address_sk
+ GROUP BY cr_returning_customer_sk,
+ ca_state)
+SELECT c_customer_id,
+ c_salutation,
+ c_first_name,
+ c_last_name,
+ ca_street_number,
+ ca_street_name,
+ ca_street_type,
+ ca_suite_number,
+ ca_city,
+ ca_county,
+ ca_state,
+ ca_zip,
+ ca_country,
+ ca_gmt_offset,
+ ca_location_type,
+ ctr_total_return
+FROM customer_total_return ctr1,
+ customer_address,
+ customer
+WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2
+ FROM customer_total_return ctr2
+ WHERE ctr1.ctr_state = ctr2.ctr_state)
+ AND ca_address_sk = c_current_addr_sk
+ AND ca_state = 'TX'
+ AND ctr1.ctr_customer_sk = c_customer_sk
+ORDER BY c_customer_id,
+ c_salutation,
+ c_first_name,
+ c_last_name,
+ ca_street_number,
+ ca_street_name,
+ ca_street_type,
+ ca_suite_number,
+ ca_city,
+ ca_county,
+ ca_state,
+ ca_zip,
+ ca_country,
+ ca_gmt_offset,
+ ca_location_type,
+ ctr_total_return
+LIMIT 100;
+WITH "customer_total_return" AS (
+ SELECT
+ "catalog_returns"."cr_returning_customer_sk" AS "ctr_customer_sk",
+ "customer_address"."ca_state" AS "ctr_state",
+ SUM("catalog_returns"."cr_return_amt_inc_tax") AS "ctr_total_return"
+ FROM "catalog_returns" AS "catalog_returns"
+ JOIN "date_dim" AS "date_dim"
+ ON "catalog_returns"."cr_returned_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_year" = 1999
+ JOIN "customer_address" AS "customer_address"
+ ON "catalog_returns"."cr_returning_addr_sk" = "customer_address"."ca_address_sk"
+ GROUP BY
+ "catalog_returns"."cr_returning_customer_sk",
+ "customer_address"."ca_state"
+), "_u_0" AS (
+ SELECT
+ AVG("ctr2"."ctr_total_return") * 1.2 AS "_col_0",
+ "ctr2"."ctr_state" AS "_u_1"
+ FROM "customer_total_return" AS "ctr2"
+ GROUP BY
+ "ctr2"."ctr_state"
+)
+SELECT
+ "customer"."c_customer_id" AS "c_customer_id",
+ "customer"."c_salutation" AS "c_salutation",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name",
+ "customer_address"."ca_street_number" AS "ca_street_number",
+ "customer_address"."ca_street_name" AS "ca_street_name",
+ "customer_address"."ca_street_type" AS "ca_street_type",
+ "customer_address"."ca_suite_number" AS "ca_suite_number",
+ "customer_address"."ca_city" AS "ca_city",
+ "customer_address"."ca_county" AS "ca_county",
+ "customer_address"."ca_state" AS "ca_state",
+ "customer_address"."ca_zip" AS "ca_zip",
+ "customer_address"."ca_country" AS "ca_country",
+ "customer_address"."ca_gmt_offset" AS "ca_gmt_offset",
+ "customer_address"."ca_location_type" AS "ca_location_type",
+ "ctr1"."ctr_total_return" AS "ctr_total_return"
+FROM "customer_total_return" AS "ctr1"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "ctr1"."ctr_state" = "_u_0"."_u_1"
+JOIN "customer" AS "customer"
+ ON "ctr1"."ctr_customer_sk" = "customer"."c_customer_sk"
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ AND "customer_address"."ca_state" = 'TX'
+WHERE
+ "ctr1"."ctr_total_return" > "_u_0"."_col_0"
+ORDER BY
+ "c_customer_id",
+ "c_salutation",
+ "c_first_name",
+ "c_last_name",
+ "ca_street_number",
+ "ca_street_name",
+ "ca_street_type",
+ "ca_suite_number",
+ "ca_city",
+ "ca_county",
+ "ca_state",
+ "ca_zip",
+ "ca_country",
+ "ca_gmt_offset",
+ "ca_location_type",
+ "ctr_total_return"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 82
+--------------------------------------
+
+SELECT
+ i_item_id ,
+ i_item_desc ,
+ i_current_price
+FROM item,
+ inventory,
+ date_dim,
+ store_sales
+WHERE i_current_price BETWEEN 63 AND 63+30
+AND inv_item_sk = i_item_sk
+AND d_date_sk=inv_date_sk
+AND d_date BETWEEN Cast('1998-04-27' AS DATE) AND (
+ Cast('1998-04-27' AS DATE) + INTERVAL '60' day)
+AND i_manufact_id IN (57,293,427,320)
+AND inv_quantity_on_hand BETWEEN 100 AND 500
+AND ss_item_sk = i_item_sk
+GROUP BY i_item_id,
+ i_item_desc,
+ i_current_price
+ORDER BY i_item_id
+LIMIT 100;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "item"."i_current_price" AS "i_current_price"
+FROM "item" AS "item"
+JOIN "inventory" AS "inventory"
+ ON "inventory"."inv_item_sk" = "item"."i_item_sk"
+ AND "inventory"."inv_quantity_on_hand" <= 500
+ AND "inventory"."inv_quantity_on_hand" >= 100
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "inventory"."inv_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('1998-06-26' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('1998-04-27' AS DATE)
+JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+WHERE
+ "item"."i_current_price" <= 93
+ AND "item"."i_current_price" >= 63
+ AND "item"."i_manufact_id" IN (57, 293, 427, 320)
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "item"."i_current_price"
+ORDER BY
+ "i_item_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 83
+--------------------------------------
+WITH sr_items
+ AS (SELECT i_item_id item_id,
+ Sum(sr_return_quantity) sr_item_qty
+ FROM store_returns,
+ item,
+ date_dim
+ WHERE sr_item_sk = i_item_sk
+ AND d_date IN (SELECT d_date
+ FROM date_dim
+ WHERE d_week_seq IN (SELECT d_week_seq
+ FROM date_dim
+ WHERE
+ d_date IN ( '1999-06-30',
+ '1999-08-28',
+ '1999-11-18'
+ )))
+ AND sr_returned_date_sk = d_date_sk
+ GROUP BY i_item_id),
+ cr_items
+ AS (SELECT i_item_id item_id,
+ Sum(cr_return_quantity) cr_item_qty
+ FROM catalog_returns,
+ item,
+ date_dim
+ WHERE cr_item_sk = i_item_sk
+ AND d_date IN (SELECT d_date
+ FROM date_dim
+ WHERE d_week_seq IN (SELECT d_week_seq
+ FROM date_dim
+ WHERE
+ d_date IN ( '1999-06-30',
+ '1999-08-28',
+ '1999-11-18'
+ )))
+ AND cr_returned_date_sk = d_date_sk
+ GROUP BY i_item_id),
+ wr_items
+ AS (SELECT i_item_id item_id,
+ Sum(wr_return_quantity) wr_item_qty
+ FROM web_returns,
+ item,
+ date_dim
+ WHERE wr_item_sk = i_item_sk
+ AND d_date IN (SELECT d_date
+ FROM date_dim
+ WHERE d_week_seq IN (SELECT d_week_seq
+ FROM date_dim
+ WHERE
+ d_date IN ( '1999-06-30',
+ '1999-08-28',
+ '1999-11-18'
+ )))
+ AND wr_returned_date_sk = d_date_sk
+ GROUP BY i_item_id)
+SELECT sr_items.item_id,
+ sr_item_qty,
+ sr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 *
+ 100 sr_dev,
+ cr_item_qty,
+ cr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 *
+ 100 cr_dev,
+ wr_item_qty,
+ wr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 *
+ 100 wr_dev,
+ ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0
+ average
+FROM sr_items,
+ cr_items,
+ wr_items
+WHERE sr_items.item_id = cr_items.item_id
+ AND sr_items.item_id = wr_items.item_id
+ORDER BY sr_items.item_id,
+ sr_item_qty
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+), "_u_0" AS (
+ SELECT
+ "date_dim"."d_week_seq" AS "d_week_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_date" IN ('1999-06-30', '1999-08-28', '1999-11-18')
+ GROUP BY
+ "date_dim"."d_week_seq"
+), "_u_1" AS (
+ SELECT
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ LEFT JOIN "_u_0" AS "_u_0"
+ ON "date_dim"."d_week_seq" = "_u_0"."d_week_seq"
+ WHERE
+ NOT "_u_0"."d_week_seq" IS NULL
+ GROUP BY
+ "date_dim"."d_date"
+), "item_2" AS (
+ SELECT
+ "item"."i_item_sk" AS "i_item_sk",
+ "item"."i_item_id" AS "i_item_id"
+ FROM "item" AS "item"
+), "sr_items" AS (
+ SELECT
+ "item"."i_item_id" AS "item_id",
+ SUM("store_returns"."sr_return_quantity") AS "sr_item_qty"
+ FROM "store_returns" AS "store_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_returns"."sr_returned_date_sk" = "date_dim"."d_date_sk"
+ LEFT JOIN "_u_1" AS "_u_1"
+ ON "date_dim"."d_date" = "_u_1"."d_date"
+ JOIN "item_2" AS "item"
+ ON "store_returns"."sr_item_sk" = "item"."i_item_sk"
+ WHERE
+ NOT "_u_1"."d_date" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "_u_3" AS (
+ SELECT
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ LEFT JOIN "_u_0" AS "_u_2"
+ ON "date_dim"."d_week_seq" = "_u_2"."d_week_seq"
+ WHERE
+ NOT "_u_2"."d_week_seq" IS NULL
+ GROUP BY
+ "date_dim"."d_date"
+), "cr_items" AS (
+ SELECT
+ "item"."i_item_id" AS "item_id",
+ SUM("catalog_returns"."cr_return_quantity") AS "cr_item_qty"
+ FROM "catalog_returns" AS "catalog_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_returns"."cr_returned_date_sk" = "date_dim"."d_date_sk"
+ LEFT JOIN "_u_3" AS "_u_3"
+ ON "date_dim"."d_date" = "_u_3"."d_date"
+ JOIN "item_2" AS "item"
+ ON "catalog_returns"."cr_item_sk" = "item"."i_item_sk"
+ WHERE
+ NOT "_u_3"."d_date" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+), "_u_5" AS (
+ SELECT
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ LEFT JOIN "_u_0" AS "_u_4"
+ ON "date_dim"."d_week_seq" = "_u_4"."d_week_seq"
+ WHERE
+ NOT "_u_4"."d_week_seq" IS NULL
+ GROUP BY
+ "date_dim"."d_date"
+), "wr_items" AS (
+ SELECT
+ "item"."i_item_id" AS "item_id",
+ SUM("web_returns"."wr_return_quantity") AS "wr_item_qty"
+ FROM "web_returns" AS "web_returns"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_returns"."wr_returned_date_sk" = "date_dim"."d_date_sk"
+ LEFT JOIN "_u_5" AS "_u_5"
+ ON "date_dim"."d_date" = "_u_5"."d_date"
+ JOIN "item_2" AS "item"
+ ON "web_returns"."wr_item_sk" = "item"."i_item_sk"
+ WHERE
+ NOT "_u_5"."d_date" IS NULL
+ GROUP BY
+ "item"."i_item_id"
+)
+SELECT
+ "sr_items"."item_id" AS "item_id",
+ "sr_items"."sr_item_qty" AS "sr_item_qty",
+ "sr_items"."sr_item_qty" / (
+ "sr_items"."sr_item_qty" + "cr_items"."cr_item_qty" + "wr_items"."wr_item_qty"
+ ) / 3.0 * 100 AS "sr_dev",
+ "cr_items"."cr_item_qty" AS "cr_item_qty",
+ "cr_items"."cr_item_qty" / (
+ "sr_items"."sr_item_qty" + "cr_items"."cr_item_qty" + "wr_items"."wr_item_qty"
+ ) / 3.0 * 100 AS "cr_dev",
+ "wr_items"."wr_item_qty" AS "wr_item_qty",
+ "wr_items"."wr_item_qty" / (
+ "sr_items"."sr_item_qty" + "cr_items"."cr_item_qty" + "wr_items"."wr_item_qty"
+ ) / 3.0 * 100 AS "wr_dev",
+ (
+ "sr_items"."sr_item_qty" + "cr_items"."cr_item_qty" + "wr_items"."wr_item_qty"
+ ) / 3.0 AS "average"
+FROM "sr_items"
+JOIN "cr_items"
+ ON "sr_items"."item_id" = "cr_items"."item_id"
+JOIN "wr_items"
+ ON "sr_items"."item_id" = "wr_items"."item_id"
+ORDER BY
+ "sr_items"."item_id",
+ "sr_item_qty"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 84
+--------------------------------------
+SELECT c_customer_id AS customer_id,
+ c_last_name
+ || ', '
+ || c_first_name AS customername
+FROM customer,
+ customer_address,
+ customer_demographics,
+ household_demographics,
+ income_band,
+ store_returns
+WHERE ca_city = 'Green Acres'
+ AND c_current_addr_sk = ca_address_sk
+ AND ib_lower_bound >= 54986
+ AND ib_upper_bound <= 54986 + 50000
+ AND ib_income_band_sk = hd_income_band_sk
+ AND cd_demo_sk = c_current_cdemo_sk
+ AND hd_demo_sk = c_current_hdemo_sk
+ AND sr_cdemo_sk = cd_demo_sk
+ORDER BY c_customer_id
+LIMIT 100;
+SELECT
+ "customer"."c_customer_id" AS "customer_id",
+ "customer"."c_last_name" || ', ' || "customer"."c_first_name" AS "customername"
+FROM "customer" AS "customer"
+JOIN "customer_address" AS "customer_address"
+ ON "customer"."c_current_addr_sk" = "customer_address"."ca_address_sk"
+ AND "customer_address"."ca_city" = 'Green Acres'
+JOIN "customer_demographics" AS "customer_demographics"
+ ON "customer_demographics"."cd_demo_sk" = "customer"."c_current_cdemo_sk"
+JOIN "household_demographics" AS "household_demographics"
+ ON "household_demographics"."hd_demo_sk" = "customer"."c_current_hdemo_sk"
+JOIN "income_band" AS "income_band"
+ ON "income_band"."ib_income_band_sk" = "household_demographics"."hd_income_band_sk"
+ AND "income_band"."ib_lower_bound" >= 54986
+ AND "income_band"."ib_upper_bound" <= 104986
+JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_cdemo_sk" = "customer_demographics"."cd_demo_sk"
+ORDER BY
+ "customer"."c_customer_id"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 85
+--------------------------------------
+SELECT Substr(r_reason_desc, 1, 20),
+ Avg(ws_quantity),
+ Avg(wr_refunded_cash),
+ Avg(wr_fee)
+FROM web_sales,
+ web_returns,
+ web_page,
+ customer_demographics cd1,
+ customer_demographics cd2,
+ customer_address,
+ date_dim,
+ reason
+WHERE ws_web_page_sk = wp_web_page_sk
+ AND ws_item_sk = wr_item_sk
+ AND ws_order_number = wr_order_number
+ AND ws_sold_date_sk = d_date_sk
+ AND d_year = 2001
+ AND cd1.cd_demo_sk = wr_refunded_cdemo_sk
+ AND cd2.cd_demo_sk = wr_returning_cdemo_sk
+ AND ca_address_sk = wr_refunded_addr_sk
+ AND r_reason_sk = wr_reason_sk
+ AND ( ( cd1.cd_marital_status = 'W'
+ AND cd1.cd_marital_status = cd2.cd_marital_status
+ AND cd1.cd_education_status = 'Primary'
+ AND cd1.cd_education_status = cd2.cd_education_status
+ AND ws_sales_price BETWEEN 100.00 AND 150.00 )
+ OR ( cd1.cd_marital_status = 'D'
+ AND cd1.cd_marital_status = cd2.cd_marital_status
+ AND cd1.cd_education_status = 'Secondary'
+ AND cd1.cd_education_status = cd2.cd_education_status
+ AND ws_sales_price BETWEEN 50.00 AND 100.00 )
+ OR ( cd1.cd_marital_status = 'M'
+ AND cd1.cd_marital_status = cd2.cd_marital_status
+ AND cd1.cd_education_status = 'Advanced Degree'
+ AND cd1.cd_education_status = cd2.cd_education_status
+ AND ws_sales_price BETWEEN 150.00 AND 200.00 ) )
+ AND ( ( ca_country = 'United States'
+ AND ca_state IN ( 'KY', 'ME', 'IL' )
+ AND ws_net_profit BETWEEN 100 AND 200 )
+ OR ( ca_country = 'United States'
+ AND ca_state IN ( 'OK', 'NE', 'MN' )
+ AND ws_net_profit BETWEEN 150 AND 300 )
+ OR ( ca_country = 'United States'
+ AND ca_state IN ( 'FL', 'WI', 'KS' )
+ AND ws_net_profit BETWEEN 50 AND 250 ) )
+GROUP BY r_reason_desc
+ORDER BY Substr(r_reason_desc, 1, 20),
+ Avg(ws_quantity),
+ Avg(wr_refunded_cash),
+ Avg(wr_fee)
+LIMIT 100;
+WITH "cd2" AS (
+ SELECT
+ "customer_demographics"."cd_demo_sk" AS "cd_demo_sk",
+ "customer_demographics"."cd_marital_status" AS "cd_marital_status",
+ "customer_demographics"."cd_education_status" AS "cd_education_status"
+ FROM "customer_demographics" AS "customer_demographics"
+)
+SELECT
+ SUBSTR("reason"."r_reason_desc", 1, 20) AS "_col_0",
+ AVG("web_sales"."ws_quantity") AS "_col_1",
+ AVG("web_returns"."wr_refunded_cash") AS "_col_2",
+ AVG("web_returns"."wr_fee") AS "_col_3"
+FROM "web_sales" AS "web_sales"
+JOIN "web_returns" AS "web_returns"
+ ON "web_sales"."ws_item_sk" = "web_returns"."wr_item_sk"
+ AND "web_sales"."ws_order_number" = "web_returns"."wr_order_number"
+JOIN "web_page" AS "web_page"
+ ON "web_sales"."ws_web_page_sk" = "web_page"."wp_web_page_sk"
+JOIN "cd2" AS "cd2"
+ ON "cd2"."cd_demo_sk" = "web_returns"."wr_returning_cdemo_sk"
+JOIN "cd2" AS "cd1"
+ ON "cd1"."cd_demo_sk" = "web_returns"."wr_refunded_cdemo_sk"
+ AND (
+ (
+ "cd1"."cd_education_status" = "cd2"."cd_education_status"
+ AND "cd1"."cd_education_status" = 'Advanced Degree'
+ AND "cd1"."cd_marital_status" = "cd2"."cd_marital_status"
+ AND "cd1"."cd_marital_status" = 'M'
+ AND "web_sales"."ws_sales_price" <= 200.00
+ AND "web_sales"."ws_sales_price" >= 150.00
+ )
+ OR (
+ "cd1"."cd_education_status" = "cd2"."cd_education_status"
+ AND "cd1"."cd_education_status" = 'Primary'
+ AND "cd1"."cd_marital_status" = "cd2"."cd_marital_status"
+ AND "cd1"."cd_marital_status" = 'W'
+ AND "web_sales"."ws_sales_price" <= 150.00
+ AND "web_sales"."ws_sales_price" >= 100.00
+ )
+ OR (
+ "cd1"."cd_education_status" = "cd2"."cd_education_status"
+ AND "cd1"."cd_education_status" = 'Secondary'
+ AND "cd1"."cd_marital_status" = "cd2"."cd_marital_status"
+ AND "cd1"."cd_marital_status" = 'D'
+ AND "web_sales"."ws_sales_price" <= 100.00
+ AND "web_sales"."ws_sales_price" >= 50.00
+ )
+ )
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_address_sk" = "web_returns"."wr_refunded_addr_sk"
+ AND (
+ (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('FL', 'WI', 'KS')
+ AND "web_sales"."ws_net_profit" <= 250
+ AND "web_sales"."ws_net_profit" >= 50
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('KY', 'ME', 'IL')
+ AND "web_sales"."ws_net_profit" <= 200
+ AND "web_sales"."ws_net_profit" >= 100
+ )
+ OR (
+ "customer_address"."ca_country" = 'United States'
+ AND "customer_address"."ca_state" IN ('OK', 'NE', 'MN')
+ AND "web_sales"."ws_net_profit" <= 300
+ AND "web_sales"."ws_net_profit" >= 150
+ )
+ )
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" = 2001 AND "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+JOIN "reason" AS "reason"
+ ON "reason"."r_reason_sk" = "web_returns"."wr_reason_sk"
+GROUP BY
+ "reason"."r_reason_desc"
+ORDER BY
+ SUBSTR("reason"."r_reason_desc", 1, 20),
+ AVG("web_sales"."ws_quantity"),
+ AVG("web_returns"."wr_refunded_cash"),
+ AVG("web_returns"."wr_fee")
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 86
+--------------------------------------
+SELECT Sum(ws_net_paid) AS total_sum,
+ i_category,
+ i_class,
+ Grouping(i_category) + Grouping(i_class) AS lochierarchy,
+ Rank()
+ OVER (
+ partition BY Grouping(i_category)+Grouping(i_class), CASE
+ WHEN Grouping(
+ i_class) = 0 THEN i_category END
+ ORDER BY Sum(ws_net_paid) DESC) AS rank_within_parent
+FROM web_sales,
+ date_dim d1,
+ item
+WHERE d1.d_month_seq BETWEEN 1183 AND 1183 + 11
+ AND d1.d_date_sk = ws_sold_date_sk
+ AND i_item_sk = ws_item_sk
+GROUP BY rollup( i_category, i_class )
+ORDER BY lochierarchy DESC,
+ CASE
+ WHEN lochierarchy = 0 THEN i_category
+ END,
+ rank_within_parent
+LIMIT 100;
+SELECT
+ SUM("web_sales"."ws_net_paid") AS "total_sum",
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ GROUPING("item"."i_category") + GROUPING("item"."i_class") AS "lochierarchy",
+ RANK() OVER (PARTITION BY GROUPING("item"."i_category") + GROUPING("item"."i_class"), CASE WHEN GROUPING("item"."i_class") = 0 THEN "item"."i_category" END ORDER BY SUM("web_sales"."ws_net_paid") DESC) AS "rank_within_parent"
+FROM "web_sales" AS "web_sales"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "web_sales"."ws_sold_date_sk"
+ AND "date_dim"."d_month_seq" <= 1194
+ AND "date_dim"."d_month_seq" >= 1183
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "web_sales"."ws_item_sk"
+GROUP BY
+ROLLUP (
+ "item"."i_category",
+ "item"."i_class"
+)
+ORDER BY
+ "lochierarchy" DESC,
+ CASE WHEN "lochierarchy" = 0 THEN "item"."i_category" END,
+ "rank_within_parent"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 87
+--------------------------------------
+select count(*)
+from ((select distinct c_last_name, c_first_name, d_date
+ from store_sales, date_dim, customer
+ where store_sales.ss_sold_date_sk = date_dim.d_date_sk
+ and store_sales.ss_customer_sk = customer.c_customer_sk
+ and d_month_seq between 1188 and 1188+11)
+ except
+ (select distinct c_last_name, c_first_name, d_date
+ from catalog_sales, date_dim, customer
+ where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
+ and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
+ and d_month_seq between 1188 and 1188+11)
+ except
+ (select distinct c_last_name, c_first_name, d_date
+ from web_sales, date_dim, customer
+ where web_sales.ws_sold_date_sk = date_dim.d_date_sk
+ and web_sales.ws_bill_customer_sk = customer.c_customer_sk
+ and d_month_seq between 1188 and 1188+11)
+) cool_cust
+;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date",
+ "date_dim"."d_month_seq" AS "d_month_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1199 AND "date_dim"."d_month_seq" >= 1188
+), "customer_2" AS (
+ SELECT
+ "customer"."c_customer_sk" AS "c_customer_sk",
+ "customer"."c_first_name" AS "c_first_name",
+ "customer"."c_last_name" AS "c_last_name"
+ FROM "customer" AS "customer"
+), "cte" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "store_sales"."ss_customer_sk" = "customer"."c_customer_sk"
+), "cte_2" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "catalog_sales"."cs_bill_customer_sk" = "customer"."c_customer_sk"
+), "cte_3" AS (
+ SELECT DISTINCT
+ "customer"."c_last_name" AS "c_last_name",
+ "customer"."c_first_name" AS "c_first_name",
+ "date_dim"."d_date" AS "d_date"
+ FROM "web_sales" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "web_sales"."ws_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "customer_2" AS "customer"
+ ON "web_sales"."ws_bill_customer_sk" = "customer"."c_customer_sk"
+), "cte_4" AS (
+ (
+ SELECT
+ "cte_2"."c_last_name" AS "c_last_name",
+ "cte_2"."c_first_name" AS "c_first_name",
+ "cte_2"."d_date" AS "d_date"
+ FROM "cte_2" AS "cte_2"
+ )
+ EXCEPT
+ (
+ SELECT
+ "cte_3"."c_last_name" AS "c_last_name",
+ "cte_3"."c_first_name" AS "c_first_name",
+ "cte_3"."d_date" AS "d_date"
+ FROM "cte_3" AS "cte_3"
+ )
+), "cool_cust" AS (
+ (
+ SELECT
+ "cte"."c_last_name" AS "c_last_name",
+ "cte"."c_first_name" AS "c_first_name",
+ "cte"."d_date" AS "d_date"
+ FROM "cte" AS "cte"
+ )
+ EXCEPT
+ SELECT
+ "cte_4"."c_last_name" AS "c_last_name",
+ "cte_4"."c_first_name" AS "c_first_name",
+ "cte_4"."d_date" AS "d_date"
+ FROM "cte_4" AS "cte_4"
+)
+SELECT
+ COUNT(*) AS "_col_0"
+FROM "cool_cust" AS "cool_cust";
+
+--------------------------------------
+-- TPC-DS 88
+--------------------------------------
+select *
+from
+ (select count(*) h8_30_to_9
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 8
+ and time_dim.t_minute >= 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s1,
+ (select count(*) h9_to_9_30
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 9
+ and time_dim.t_minute < 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s2,
+ (select count(*) h9_30_to_10
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 9
+ and time_dim.t_minute >= 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s3,
+ (select count(*) h10_to_10_30
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 10
+ and time_dim.t_minute < 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s4,
+ (select count(*) h10_30_to_11
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 10
+ and time_dim.t_minute >= 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s5,
+ (select count(*) h11_to_11_30
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 11
+ and time_dim.t_minute < 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s6,
+ (select count(*) h11_30_to_12
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 11
+ and time_dim.t_minute >= 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s7,
+ (select count(*) h12_to_12_30
+ from store_sales, household_demographics , time_dim, store
+ where ss_sold_time_sk = time_dim.t_time_sk
+ and ss_hdemo_sk = household_demographics.hd_demo_sk
+ and ss_store_sk = s_store_sk
+ and time_dim.t_hour = 12
+ and time_dim.t_minute < 30
+ and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or
+ (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or
+ (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2))
+ and store.s_store_name = 'ese') s8
+;
+WITH "store_sales_2" AS (
+ SELECT
+ "store_sales"."ss_sold_time_sk" AS "ss_sold_time_sk",
+ "store_sales"."ss_hdemo_sk" AS "ss_hdemo_sk",
+ "store_sales"."ss_store_sk" AS "ss_store_sk"
+ FROM "store_sales" AS "store_sales"
+), "household_demographics_2" AS (
+ SELECT
+ "household_demographics"."hd_demo_sk" AS "hd_demo_sk",
+ "household_demographics"."hd_dep_count" AS "hd_dep_count",
+ "household_demographics"."hd_vehicle_count" AS "hd_vehicle_count"
+ FROM "household_demographics" AS "household_demographics"
+ WHERE
+ (
+ "household_demographics"."hd_dep_count" = -1
+ OR "household_demographics"."hd_dep_count" = 2
+ OR "household_demographics"."hd_dep_count" = 3
+ )
+ AND (
+ "household_demographics"."hd_dep_count" = 2
+ OR "household_demographics"."hd_dep_count" = 3
+ OR "household_demographics"."hd_vehicle_count" <= 1
+ )
+ AND (
+ "household_demographics"."hd_dep_count" = 3
+ OR "household_demographics"."hd_vehicle_count" <= 4
+ )
+ AND "household_demographics"."hd_vehicle_count" <= 5
+), "store_2" AS (
+ SELECT
+ "store"."s_store_sk" AS "s_store_sk",
+ "store"."s_store_name" AS "s_store_name"
+ FROM "store" AS "store"
+ WHERE
+ "store"."s_store_name" = 'ese'
+), "s1" AS (
+ SELECT
+ COUNT(*) AS "h8_30_to_9"
+ FROM "store_sales_2" AS "store_sales"
+ JOIN "household_demographics_2" AS "household_demographics"
+ ON "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ JOIN "time_dim" AS "time_dim"
+ ON "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "time_dim"."t_hour" = 8
+ AND "time_dim"."t_minute" >= 30
+ JOIN "store_2" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+), "s2" AS (
+ SELECT
+ COUNT(*) AS "h9_to_9_30"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 9
+ AND "time_dim"."t_minute" < 30
+), "s3" AS (
+ SELECT
+ COUNT(*) AS "h9_30_to_10"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 9
+ AND "time_dim"."t_minute" >= 30
+), "s4" AS (
+ SELECT
+ COUNT(*) AS "h10_to_10_30"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 10
+ AND "time_dim"."t_minute" < 30
+), "s5" AS (
+ SELECT
+ COUNT(*) AS "h10_30_to_11"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 10
+ AND "time_dim"."t_minute" >= 30
+), "s6" AS (
+ SELECT
+ COUNT(*) AS "h11_to_11_30"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 11
+ AND "time_dim"."t_minute" < 30
+), "s7" AS (
+ SELECT
+ COUNT(*) AS "h11_30_to_12"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 11
+ AND "time_dim"."t_minute" >= 30
+), "s8" AS (
+ SELECT
+ COUNT(*) AS "h12_to_12_30"
+ FROM "store_sales_2" AS "store_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "store_2" AS "store"
+ WHERE
+ "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ AND "time_dim"."t_hour" = 12
+ AND "time_dim"."t_minute" < 30
+)
+SELECT
+ "s1"."h8_30_to_9" AS "h8_30_to_9",
+ "s2"."h9_to_9_30" AS "h9_to_9_30",
+ "s3"."h9_30_to_10" AS "h9_30_to_10",
+ "s4"."h10_to_10_30" AS "h10_to_10_30",
+ "s5"."h10_30_to_11" AS "h10_30_to_11",
+ "s6"."h11_to_11_30" AS "h11_to_11_30",
+ "s7"."h11_30_to_12" AS "h11_30_to_12",
+ "s8"."h12_to_12_30" AS "h12_to_12_30"
+FROM "s1" AS "s1"
+CROSS JOIN "s2" AS "s2"
+CROSS JOIN "s3" AS "s3"
+CROSS JOIN "s4" AS "s4"
+CROSS JOIN "s5" AS "s5"
+CROSS JOIN "s6" AS "s6"
+CROSS JOIN "s7" AS "s7"
+CROSS JOIN "s8" AS "s8";
+
+--------------------------------------
+-- TPC-DS 89
+--------------------------------------
+SELECT *
+FROM (SELECT i_category,
+ i_class,
+ i_brand,
+ s_store_name,
+ s_company_name,
+ d_moy,
+ Sum(ss_sales_price) sum_sales,
+ Avg(Sum(ss_sales_price))
+ OVER (
+ partition BY i_category, i_brand, s_store_name, s_company_name
+ )
+ avg_monthly_sales
+ FROM item,
+ store_sales,
+ date_dim,
+ store
+ WHERE ss_item_sk = i_item_sk
+ AND ss_sold_date_sk = d_date_sk
+ AND ss_store_sk = s_store_sk
+ AND d_year IN ( 2002 )
+ AND ( ( i_category IN ( 'Home', 'Men', 'Sports' )
+ AND i_class IN ( 'paint', 'accessories', 'fitness' ) )
+ OR ( i_category IN ( 'Shoes', 'Jewelry', 'Women' )
+ AND i_class IN ( 'mens', 'pendants', 'swimwear' ) ) )
+ GROUP BY i_category,
+ i_class,
+ i_brand,
+ s_store_name,
+ s_company_name,
+ d_moy) tmp1
+WHERE CASE
+ WHEN ( avg_monthly_sales <> 0 ) THEN (
+ Abs(sum_sales - avg_monthly_sales) / avg_monthly_sales )
+ ELSE NULL
+ END > 0.1
+ORDER BY sum_sales - avg_monthly_sales,
+ s_store_name
+LIMIT 100;
+WITH "tmp1" AS (
+ SELECT
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ "item"."i_brand" AS "i_brand",
+ "store"."s_store_name" AS "s_store_name",
+ "store"."s_company_name" AS "s_company_name",
+ "date_dim"."d_moy" AS "d_moy",
+ SUM("store_sales"."ss_sales_price") AS "sum_sales",
+ AVG(SUM("store_sales"."ss_sales_price")) OVER (PARTITION BY "item"."i_category", "item"."i_brand", "store"."s_store_name", "store"."s_company_name") AS "avg_monthly_sales"
+ FROM "item" AS "item"
+ JOIN "store_sales" AS "store_sales"
+ ON "store_sales"."ss_item_sk" = "item"."i_item_sk"
+ JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_year" IN (2002)
+ AND "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ JOIN "store" AS "store"
+ ON "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ WHERE
+ (
+ "item"."i_category" IN ('Home', 'Men', 'Sports')
+ OR "item"."i_category" IN ('Shoes', 'Jewelry', 'Women')
+ )
+ AND (
+ "item"."i_category" IN ('Home', 'Men', 'Sports')
+ OR "item"."i_class" IN ('mens', 'pendants', 'swimwear')
+ )
+ AND (
+ "item"."i_category" IN ('Shoes', 'Jewelry', 'Women')
+ OR "item"."i_class" IN ('paint', 'accessories', 'fitness')
+ )
+ AND (
+ "item"."i_class" IN ('mens', 'pendants', 'swimwear')
+ OR "item"."i_class" IN ('paint', 'accessories', 'fitness')
+ )
+ GROUP BY
+ "item"."i_category",
+ "item"."i_class",
+ "item"."i_brand",
+ "store"."s_store_name",
+ "store"."s_company_name",
+ "date_dim"."d_moy"
+)
+SELECT
+ "tmp1"."i_category" AS "i_category",
+ "tmp1"."i_class" AS "i_class",
+ "tmp1"."i_brand" AS "i_brand",
+ "tmp1"."s_store_name" AS "s_store_name",
+ "tmp1"."s_company_name" AS "s_company_name",
+ "tmp1"."d_moy" AS "d_moy",
+ "tmp1"."sum_sales" AS "sum_sales",
+ "tmp1"."avg_monthly_sales" AS "avg_monthly_sales"
+FROM "tmp1" AS "tmp1"
+WHERE
+ CASE
+ WHEN "tmp1"."avg_monthly_sales" <> 0
+ THEN (
+ ABS("tmp1"."sum_sales" - "tmp1"."avg_monthly_sales") / "tmp1"."avg_monthly_sales"
+ )
+ ELSE NULL
+ END > 0.1
+ORDER BY
+ "tmp1"."sum_sales" - "tmp1"."avg_monthly_sales",
+ "tmp1"."s_store_name"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 90
+--------------------------------------
+
+SELECT Cast(amc AS DECIMAL(15, 4)) / Cast(pmc AS DECIMAL(15, 4))
+ am_pm_ratio
+FROM (SELECT Count(*) amc
+ FROM web_sales,
+ household_demographics,
+ time_dim,
+ web_page
+ WHERE ws_sold_time_sk = time_dim.t_time_sk
+ AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk
+ AND ws_web_page_sk = web_page.wp_web_page_sk
+ AND time_dim.t_hour BETWEEN 12 AND 12 + 1
+ AND household_demographics.hd_dep_count = 8
+ AND web_page.wp_char_count BETWEEN 5000 AND 5200) at1,
+ (SELECT Count(*) pmc
+ FROM web_sales,
+ household_demographics,
+ time_dim,
+ web_page
+ WHERE ws_sold_time_sk = time_dim.t_time_sk
+ AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk
+ AND ws_web_page_sk = web_page.wp_web_page_sk
+ AND time_dim.t_hour BETWEEN 20 AND 20 + 1
+ AND household_demographics.hd_dep_count = 8
+ AND web_page.wp_char_count BETWEEN 5000 AND 5200) pt
+ORDER BY am_pm_ratio
+LIMIT 100;
+WITH "web_sales_2" AS (
+ SELECT
+ "web_sales"."ws_sold_time_sk" AS "ws_sold_time_sk",
+ "web_sales"."ws_ship_hdemo_sk" AS "ws_ship_hdemo_sk",
+ "web_sales"."ws_web_page_sk" AS "ws_web_page_sk"
+ FROM "web_sales" AS "web_sales"
+), "household_demographics_2" AS (
+ SELECT
+ "household_demographics"."hd_demo_sk" AS "hd_demo_sk",
+ "household_demographics"."hd_dep_count" AS "hd_dep_count"
+ FROM "household_demographics" AS "household_demographics"
+ WHERE
+ "household_demographics"."hd_dep_count" = 8
+), "web_page_2" AS (
+ SELECT
+ "web_page"."wp_web_page_sk" AS "wp_web_page_sk",
+ "web_page"."wp_char_count" AS "wp_char_count"
+ FROM "web_page" AS "web_page"
+ WHERE
+ "web_page"."wp_char_count" <= 5200 AND "web_page"."wp_char_count" >= 5000
+), "at1" AS (
+ SELECT
+ COUNT(*) AS "amc"
+ FROM "web_sales_2" AS "web_sales"
+ JOIN "household_demographics_2" AS "household_demographics"
+ ON "web_sales"."ws_ship_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ JOIN "time_dim" AS "time_dim"
+ ON "time_dim"."t_hour" <= 13
+ AND "time_dim"."t_hour" >= 12
+ AND "web_sales"."ws_sold_time_sk" = "time_dim"."t_time_sk"
+ JOIN "web_page_2" AS "web_page"
+ ON "web_sales"."ws_web_page_sk" = "web_page"."wp_web_page_sk"
+), "pt" AS (
+ SELECT
+ COUNT(*) AS "pmc"
+ FROM "web_sales_2" AS "web_sales", "household_demographics_2" AS "household_demographics", "time_dim" AS "time_dim", "web_page_2" AS "web_page"
+ WHERE
+ "time_dim"."t_hour" <= 21
+ AND "time_dim"."t_hour" >= 20
+ AND "web_sales"."ws_ship_hdemo_sk" = "household_demographics"."hd_demo_sk"
+ AND "web_sales"."ws_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "web_sales"."ws_web_page_sk" = "web_page"."wp_web_page_sk"
+)
+SELECT
+ CAST("at1"."amc" AS DECIMAL(15, 4)) / CAST("pt"."pmc" AS DECIMAL(15, 4)) AS "am_pm_ratio"
+FROM "at1" AS "at1"
+CROSS JOIN "pt" AS "pt"
+ORDER BY
+ "am_pm_ratio"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 91
+--------------------------------------
+SELECT cc_call_center_id Call_Center,
+ cc_name Call_Center_Name,
+ cc_manager Manager,
+ Sum(cr_net_loss) Returns_Loss
+FROM call_center,
+ catalog_returns,
+ date_dim,
+ customer,
+ customer_address,
+ customer_demographics,
+ household_demographics
+WHERE cr_call_center_sk = cc_call_center_sk
+ AND cr_returned_date_sk = d_date_sk
+ AND cr_returning_customer_sk = c_customer_sk
+ AND cd_demo_sk = c_current_cdemo_sk
+ AND hd_demo_sk = c_current_hdemo_sk
+ AND ca_address_sk = c_current_addr_sk
+ AND d_year = 1999
+ AND d_moy = 12
+ AND ( ( cd_marital_status = 'M'
+ AND cd_education_status = 'Unknown' )
+ OR ( cd_marital_status = 'W'
+ AND cd_education_status = 'Advanced Degree' ) )
+ AND hd_buy_potential LIKE 'Unknown%'
+ AND ca_gmt_offset = -7
+GROUP BY cc_call_center_id,
+ cc_name,
+ cc_manager,
+ cd_marital_status,
+ cd_education_status
+ORDER BY Sum(cr_net_loss) DESC;
+SELECT
+ "call_center"."cc_call_center_id" AS Call_Center,
+ "call_center"."cc_name" AS Call_Center_Name,
+ "call_center"."cc_manager" AS Manager,
+ SUM("catalog_returns"."cr_net_loss") AS Returns_Loss
+FROM "call_center" AS "call_center"
+JOIN "catalog_returns" AS "catalog_returns"
+ ON "catalog_returns"."cr_call_center_sk" = "call_center"."cc_call_center_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_returns"."cr_returned_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_moy" = 12
+ AND "date_dim"."d_year" = 1999
+JOIN "household_demographics" AS "household_demographics"
+ ON "household_demographics"."hd_buy_potential" LIKE 'Unknown%'
+JOIN "customer_demographics" AS "customer_demographics"
+ ON (
+ "customer_demographics"."cd_education_status" = 'Advanced Degree'
+ OR "customer_demographics"."cd_education_status" = 'Unknown'
+ )
+ AND (
+ "customer_demographics"."cd_education_status" = 'Advanced Degree'
+ OR "customer_demographics"."cd_marital_status" = 'M'
+ )
+ AND (
+ "customer_demographics"."cd_education_status" = 'Unknown'
+ OR "customer_demographics"."cd_marital_status" = 'W'
+ )
+ AND (
+ "customer_demographics"."cd_marital_status" = 'M'
+ OR "customer_demographics"."cd_marital_status" = 'W'
+ )
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_gmt_offset" = -7
+JOIN "customer" AS "customer"
+ ON "catalog_returns"."cr_returning_customer_sk" = "customer"."c_customer_sk"
+ AND "customer_address"."ca_address_sk" = "customer"."c_current_addr_sk"
+ AND "customer_demographics"."cd_demo_sk" = "customer"."c_current_cdemo_sk"
+ AND "household_demographics"."hd_demo_sk" = "customer"."c_current_hdemo_sk"
+GROUP BY
+ "call_center"."cc_call_center_id",
+ "call_center"."cc_name",
+ "call_center"."cc_manager",
+ "customer_demographics"."cd_marital_status",
+ "customer_demographics"."cd_education_status"
+ORDER BY
+ SUM("catalog_returns"."cr_net_loss") DESC;
+
+--------------------------------------
+-- TPC-DS 92
+--------------------------------------
+SELECT
+ Sum(ws_ext_discount_amt) AS "Excess Discount Amount"
+FROM web_sales ,
+ item ,
+ date_dim
+WHERE i_manufact_id = 718
+AND i_item_sk = ws_item_sk
+AND d_date BETWEEN '2002-03-29' AND (
+ Cast('2002-03-29' AS DATE) + INTERVAL '90' day)
+AND d_date_sk = ws_sold_date_sk
+AND ws_ext_discount_amt >
+ (
+ SELECT 1.3 * avg(ws_ext_discount_amt)
+ FROM web_sales ,
+ date_dim
+ WHERE ws_item_sk = i_item_sk
+ AND d_date BETWEEN '2002-03-29' AND (
+ cast('2002-03-29' AS date) + INTERVAL '90' day)
+ AND d_date_sk = ws_sold_date_sk )
+ORDER BY sum(ws_ext_discount_amt)
+LIMIT 100;
+WITH "web_sales_2" AS (
+ SELECT
+ "web_sales"."ws_sold_date_sk" AS "ws_sold_date_sk",
+ "web_sales"."ws_item_sk" AS "ws_item_sk",
+ "web_sales"."ws_ext_discount_amt" AS "ws_ext_discount_amt"
+ FROM "web_sales" AS "web_sales"
+), "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_date" AS "d_date"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_date" >= '2002-03-29'
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2002-06-27' AS DATE)
+), "_u_0" AS (
+ SELECT
+ 1.3 * AVG("web_sales"."ws_ext_discount_amt") AS "_col_0",
+ "web_sales"."ws_item_sk" AS "_u_1"
+ FROM "web_sales_2" AS "web_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "web_sales"."ws_sold_date_sk"
+ GROUP BY
+ "web_sales"."ws_item_sk"
+)
+SELECT
+ SUM("web_sales"."ws_ext_discount_amt") AS "Excess Discount Amount"
+FROM "web_sales_2" AS "web_sales"
+JOIN "item" AS "item"
+ ON "item"."i_item_sk" = "web_sales"."ws_item_sk" AND "item"."i_manufact_id" = 718
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "_u_0"."_u_1" = "item"."i_item_sk"
+JOIN "date_dim_2" AS "date_dim"
+ ON "date_dim"."d_date_sk" = "web_sales"."ws_sold_date_sk"
+WHERE
+ "web_sales"."ws_ext_discount_amt" > "_u_0"."_col_0"
+ORDER BY
+ SUM("web_sales"."ws_ext_discount_amt")
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 93
+--------------------------------------
+SELECT ss_customer_sk,
+ Sum(act_sales) sumsales
+FROM (SELECT ss_item_sk,
+ ss_ticket_number,
+ ss_customer_sk,
+ CASE
+ WHEN sr_return_quantity IS NOT NULL THEN
+ ( ss_quantity - sr_return_quantity ) * ss_sales_price
+ ELSE ( ss_quantity * ss_sales_price )
+ END act_sales
+ FROM store_sales
+ LEFT OUTER JOIN store_returns
+ ON ( sr_item_sk = ss_item_sk
+ AND sr_ticket_number = ss_ticket_number ),
+ reason
+ WHERE sr_reason_sk = r_reason_sk
+ AND r_reason_desc = 'reason 38') t
+GROUP BY ss_customer_sk
+ORDER BY sumsales,
+ ss_customer_sk
+LIMIT 100;
+SELECT
+ "store_sales"."ss_customer_sk" AS "ss_customer_sk",
+ SUM(
+ CASE
+ WHEN NOT "store_returns"."sr_return_quantity" IS NULL
+ THEN (
+ "store_sales"."ss_quantity" - "store_returns"."sr_return_quantity"
+ ) * "store_sales"."ss_sales_price"
+ ELSE (
+ "store_sales"."ss_quantity" * "store_sales"."ss_sales_price"
+ )
+ END
+ ) AS "sumsales"
+FROM "store_sales" AS "store_sales"
+LEFT JOIN "store_returns" AS "store_returns"
+ ON "store_returns"."sr_item_sk" = "store_sales"."ss_item_sk"
+ AND "store_returns"."sr_ticket_number" = "store_sales"."ss_ticket_number"
+JOIN "reason" AS "reason"
+ ON "reason"."r_reason_desc" = 'reason 38'
+WHERE
+ "store_returns"."sr_reason_sk" = "reason"."r_reason_sk"
+GROUP BY
+ "store_sales"."ss_customer_sk"
+ORDER BY
+ "sumsales",
+ "ss_customer_sk"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 94
+--------------------------------------
+SELECT
+ Count(DISTINCT ws_order_number) AS "order count" ,
+ Sum(ws_ext_ship_cost) AS "total shipping cost" ,
+ Sum(ws_net_profit) AS "total net profit"
+FROM web_sales ws1 ,
+ date_dim ,
+ customer_address ,
+ web_site
+WHERE d_date BETWEEN '2000-3-01' AND (
+ Cast('2000-3-01' AS DATE) + INTERVAL '60' day)
+AND ws1.ws_ship_date_sk = d_date_sk
+AND ws1.ws_ship_addr_sk = ca_address_sk
+AND ca_state = 'MT'
+AND ws1.ws_web_site_sk = web_site_sk
+AND web_company_name = 'pri'
+AND EXISTS
+ (
+ SELECT *
+ FROM web_sales ws2
+ WHERE ws1.ws_order_number = ws2.ws_order_number
+ AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk)
+AND NOT EXISTS
+ (
+ SELECT *
+ FROM web_returns wr1
+ WHERE ws1.ws_order_number = wr1.wr_order_number)
+ORDER BY count(DISTINCT ws_order_number)
+LIMIT 100;
+WITH "_u_0" AS (
+ SELECT
+ "ws2"."ws_order_number" AS "_u_1",
+ ARRAY_AGG("ws2"."ws_warehouse_sk") AS "_u_2"
+ FROM "web_sales" AS "ws2"
+ GROUP BY
+ "ws2"."ws_order_number"
+), "_u_3" AS (
+ SELECT
+ "wr1"."wr_order_number" AS "_u_4"
+ FROM "web_returns" AS "wr1"
+ GROUP BY
+ "wr1"."wr_order_number"
+)
+SELECT
+ COUNT(DISTINCT "web_sales"."ws_order_number") AS "order count",
+ SUM("web_sales"."ws_ext_ship_cost") AS "total shipping cost",
+ SUM("web_sales"."ws_net_profit") AS "total net profit"
+FROM "web_sales" AS "web_sales"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "web_sales"."ws_order_number" = "_u_0"."_u_1"
+LEFT JOIN "_u_3" AS "_u_3"
+ ON "web_sales"."ws_order_number" = "_u_3"."_u_4"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date" >= '2000-3-01'
+ AND "web_sales"."ws_ship_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= (
+ CAST('2000-3-01' AS DATE) + INTERVAL '60' "day"
+ )
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_state" = 'MT'
+ AND "web_sales"."ws_ship_addr_sk" = "customer_address"."ca_address_sk"
+JOIN "web_site" AS "web_site"
+ ON "web_sales"."ws_web_site_sk" = "web_site"."web_site_sk"
+ AND "web_site"."web_company_name" = 'pri'
+WHERE
+ "_u_3"."_u_4" IS NULL
+ AND ARRAY_ANY("_u_0"."_u_2", "_x" -> "web_sales"."ws_warehouse_sk" <> "_x")
+ AND NOT "_u_0"."_u_1" IS NULL
+ORDER BY
+ COUNT(DISTINCT "web_sales"."ws_order_number")
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 95
+--------------------------------------
+WITH ws_wh AS
+(
+ SELECT ws1.ws_order_number,
+ ws1.ws_warehouse_sk wh1,
+ ws2.ws_warehouse_sk wh2
+ FROM web_sales ws1,
+ web_sales ws2
+ WHERE ws1.ws_order_number = ws2.ws_order_number
+ AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk)
+SELECT
+ Count(DISTINCT ws_order_number) AS "order count" ,
+ Sum(ws_ext_ship_cost) AS "total shipping cost" ,
+ Sum(ws_net_profit) AS "total net profit"
+FROM web_sales ws1 ,
+ date_dim ,
+ customer_address ,
+ web_site
+WHERE d_date BETWEEN '2000-4-01' AND (
+ Cast('2000-4-01' AS DATE) + INTERVAL '60' day)
+AND ws1.ws_ship_date_sk = d_date_sk
+AND ws1.ws_ship_addr_sk = ca_address_sk
+AND ca_state = 'IN'
+AND ws1.ws_web_site_sk = web_site_sk
+AND web_company_name = 'pri'
+AND ws1.ws_order_number IN
+ (
+ SELECT ws_order_number
+ FROM ws_wh)
+AND ws1.ws_order_number IN
+ (
+ SELECT wr_order_number
+ FROM web_returns,
+ ws_wh
+ WHERE wr_order_number = ws_wh.ws_order_number)
+ORDER BY count(DISTINCT ws_order_number)
+LIMIT 100;
+WITH "ws1" AS (
+ SELECT
+ "web_sales"."ws_warehouse_sk" AS "ws_warehouse_sk",
+ "web_sales"."ws_order_number" AS "ws_order_number"
+ FROM "web_sales" AS "web_sales"
+), "ws_wh" AS (
+ SELECT
+ "ws1"."ws_order_number" AS "ws_order_number"
+ FROM "ws1" AS "ws1"
+ JOIN "ws1" AS "ws2"
+ ON "ws1"."ws_order_number" = "ws2"."ws_order_number"
+ AND "ws1"."ws_warehouse_sk" <> "ws2"."ws_warehouse_sk"
+), "_u_0" AS (
+ SELECT
+ "ws_wh"."ws_order_number" AS "ws_order_number"
+ FROM "ws_wh"
+ GROUP BY
+ "ws_wh"."ws_order_number"
+), "_u_1" AS (
+ SELECT
+ "web_returns"."wr_order_number" AS "wr_order_number"
+ FROM "web_returns" AS "web_returns"
+ JOIN "ws_wh"
+ ON "web_returns"."wr_order_number" = "ws_wh"."ws_order_number"
+ GROUP BY
+ "web_returns"."wr_order_number"
+)
+SELECT
+ COUNT(DISTINCT "web_sales"."ws_order_number") AS "order count",
+ SUM("web_sales"."ws_ext_ship_cost") AS "total shipping cost",
+ SUM("web_sales"."ws_net_profit") AS "total net profit"
+FROM "web_sales" AS "web_sales"
+LEFT JOIN "_u_0" AS "_u_0"
+ ON "web_sales"."ws_order_number" = "_u_0"."ws_order_number"
+LEFT JOIN "_u_1" AS "_u_1"
+ ON "web_sales"."ws_order_number" = "_u_1"."wr_order_number"
+JOIN "date_dim" AS "date_dim"
+ ON "date_dim"."d_date" >= '2000-4-01'
+ AND "web_sales"."ws_ship_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= (
+ CAST('2000-4-01' AS DATE) + INTERVAL '60' "day"
+ )
+JOIN "customer_address" AS "customer_address"
+ ON "customer_address"."ca_state" = 'IN'
+ AND "web_sales"."ws_ship_addr_sk" = "customer_address"."ca_address_sk"
+JOIN "web_site" AS "web_site"
+ ON "web_sales"."ws_web_site_sk" = "web_site"."web_site_sk"
+ AND "web_site"."web_company_name" = 'pri'
+WHERE
+ NOT "_u_0"."ws_order_number" IS NULL AND NOT "_u_1"."wr_order_number" IS NULL
+ORDER BY
+ COUNT(DISTINCT "web_sales"."ws_order_number")
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 96
+--------------------------------------
+SELECT Count(*)
+FROM store_sales,
+ household_demographics,
+ time_dim,
+ store
+WHERE ss_sold_time_sk = time_dim.t_time_sk
+ AND ss_hdemo_sk = household_demographics.hd_demo_sk
+ AND ss_store_sk = s_store_sk
+ AND time_dim.t_hour = 15
+ AND time_dim.t_minute >= 30
+ AND household_demographics.hd_dep_count = 7
+ AND store.s_store_name = 'ese'
+ORDER BY Count(*)
+LIMIT 100;
+SELECT
+ COUNT(*) AS "_col_0"
+FROM "store_sales" AS "store_sales"
+JOIN "household_demographics" AS "household_demographics"
+ ON "household_demographics"."hd_dep_count" = 7
+ AND "store_sales"."ss_hdemo_sk" = "household_demographics"."hd_demo_sk"
+JOIN "time_dim" AS "time_dim"
+ ON "store_sales"."ss_sold_time_sk" = "time_dim"."t_time_sk"
+ AND "time_dim"."t_hour" = 15
+ AND "time_dim"."t_minute" >= 30
+JOIN "store" AS "store"
+ ON "store"."s_store_name" = 'ese' AND "store_sales"."ss_store_sk" = "store"."s_store_sk"
+ORDER BY
+ COUNT(*)
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 97
+--------------------------------------
+
+WITH ssci
+ AS (SELECT ss_customer_sk customer_sk,
+ ss_item_sk item_sk
+ FROM store_sales,
+ date_dim
+ WHERE ss_sold_date_sk = d_date_sk
+ AND d_month_seq BETWEEN 1196 AND 1196 + 11
+ GROUP BY ss_customer_sk,
+ ss_item_sk),
+ csci
+ AS (SELECT cs_bill_customer_sk customer_sk,
+ cs_item_sk item_sk
+ FROM catalog_sales,
+ date_dim
+ WHERE cs_sold_date_sk = d_date_sk
+ AND d_month_seq BETWEEN 1196 AND 1196 + 11
+ GROUP BY cs_bill_customer_sk,
+ cs_item_sk)
+SELECT Sum(CASE
+ WHEN ssci.customer_sk IS NOT NULL
+ AND csci.customer_sk IS NULL THEN 1
+ ELSE 0
+ END) store_only,
+ Sum(CASE
+ WHEN ssci.customer_sk IS NULL
+ AND csci.customer_sk IS NOT NULL THEN 1
+ ELSE 0
+ END) catalog_only,
+ Sum(CASE
+ WHEN ssci.customer_sk IS NOT NULL
+ AND csci.customer_sk IS NOT NULL THEN 1
+ ELSE 0
+ END) store_and_catalog
+FROM ssci
+ FULL OUTER JOIN csci
+ ON ( ssci.customer_sk = csci.customer_sk
+ AND ssci.item_sk = csci.item_sk )
+LIMIT 100;
+WITH "date_dim_2" AS (
+ SELECT
+ "date_dim"."d_date_sk" AS "d_date_sk",
+ "date_dim"."d_month_seq" AS "d_month_seq"
+ FROM "date_dim" AS "date_dim"
+ WHERE
+ "date_dim"."d_month_seq" <= 1207 AND "date_dim"."d_month_seq" >= 1196
+), "ssci" AS (
+ SELECT
+ "store_sales"."ss_customer_sk" AS "customer_sk",
+ "store_sales"."ss_item_sk" AS "item_sk"
+ FROM "store_sales" AS "store_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "store_sales"."ss_customer_sk",
+ "store_sales"."ss_item_sk"
+), "csci" AS (
+ SELECT
+ "catalog_sales"."cs_bill_customer_sk" AS "customer_sk",
+ "catalog_sales"."cs_item_sk" AS "item_sk"
+ FROM "catalog_sales" AS "catalog_sales"
+ JOIN "date_dim_2" AS "date_dim"
+ ON "catalog_sales"."cs_sold_date_sk" = "date_dim"."d_date_sk"
+ GROUP BY
+ "catalog_sales"."cs_bill_customer_sk",
+ "catalog_sales"."cs_item_sk"
+)
+SELECT
+ SUM(
+ CASE
+ WHEN "csci"."customer_sk" IS NULL AND NOT "ssci"."customer_sk" IS NULL
+ THEN 1
+ ELSE 0
+ END
+ ) AS "store_only",
+ SUM(
+ CASE
+ WHEN "ssci"."customer_sk" IS NULL AND NOT "csci"."customer_sk" IS NULL
+ THEN 1
+ ELSE 0
+ END
+ ) AS "catalog_only",
+ SUM(
+ CASE
+ WHEN NOT "csci"."customer_sk" IS NULL AND NOT "ssci"."customer_sk" IS NULL
+ THEN 1
+ ELSE 0
+ END
+ ) AS "store_and_catalog"
+FROM "ssci"
+FULL JOIN "csci"
+ ON "ssci"."customer_sk" = "csci"."customer_sk" AND "ssci"."item_sk" = "csci"."item_sk"
+LIMIT 100;
+
+--------------------------------------
+-- TPC-DS 98
+--------------------------------------
+
+SELECT i_item_id,
+ i_item_desc,
+ i_category,
+ i_class,
+ i_current_price,
+ Sum(ss_ext_sales_price) AS itemrevenue,
+ Sum(ss_ext_sales_price) * 100 / Sum(Sum(ss_ext_sales_price))
+ OVER (
+ PARTITION BY i_class) AS revenueratio
+FROM store_sales,
+ item,
+ date_dim
+WHERE ss_item_sk = i_item_sk
+ AND i_category IN ( 'Men', 'Home', 'Electronics' )
+ AND ss_sold_date_sk = d_date_sk
+ AND d_date BETWEEN CAST('2000-05-18' AS DATE) AND (
+ CAST('2000-05-18' AS DATE) + INTERVAL '30' DAY )
+GROUP BY i_item_id,
+ i_item_desc,
+ i_category,
+ i_class,
+ i_current_price
+ORDER BY i_category,
+ i_class,
+ i_item_id,
+ i_item_desc,
+ revenueratio;
+SELECT
+ "item"."i_item_id" AS "i_item_id",
+ "item"."i_item_desc" AS "i_item_desc",
+ "item"."i_category" AS "i_category",
+ "item"."i_class" AS "i_class",
+ "item"."i_current_price" AS "i_current_price",
+ SUM("store_sales"."ss_ext_sales_price") AS "itemrevenue",
+ SUM("store_sales"."ss_ext_sales_price") * 100 / SUM(SUM("store_sales"."ss_ext_sales_price")) OVER (PARTITION BY "item"."i_class") AS "revenueratio"
+FROM "store_sales" AS "store_sales"
+JOIN "item" AS "item"
+ ON "item"."i_category" IN ('Men', 'Home', 'Electronics')
+ AND "store_sales"."ss_item_sk" = "item"."i_item_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "store_sales"."ss_sold_date_sk" = "date_dim"."d_date_sk"
+ AND CAST("date_dim"."d_date" AS DATE) <= CAST('2000-06-17' AS DATE)
+ AND CAST("date_dim"."d_date" AS DATE) >= CAST('2000-05-18' AS DATE)
+GROUP BY
+ "item"."i_item_id",
+ "item"."i_item_desc",
+ "item"."i_category",
+ "item"."i_class",
+ "item"."i_current_price"
+ORDER BY
+ "i_category",
+ "i_class",
+ "i_item_id",
+ "i_item_desc",
+ "revenueratio";
+
+--------------------------------------
+-- TPC-DS 99
+--------------------------------------
+
+
+SELECT Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ cc_name,
+ 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,
+ warehouse,
+ 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 Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ cc_name
+ORDER BY Substr(w_warehouse_name, 1, 20),
+ sm_type,
+ cc_name
+LIMIT 100;
+SELECT
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20) AS "_col_0",
+ "ship_mode"."sm_type" AS "sm_type",
+ "call_center"."cc_name" AS "cc_name",
+ SUM(
+ CASE
+ WHEN "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" <= 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "30 days",
+ SUM(
+ CASE
+ WHEN "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" <= 60
+ AND "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" > 30
+ THEN 1
+ ELSE 0
+ END
+ ) AS "31-60 days",
+ SUM(
+ CASE
+ WHEN "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" <= 90
+ AND "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" > 60
+ THEN 1
+ ELSE 0
+ END
+ ) AS "61-90 days",
+ SUM(
+ CASE
+ WHEN "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" <= 120
+ AND "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" > 90
+ THEN 1
+ ELSE 0
+ END
+ ) AS "91-120 days",
+ SUM(
+ CASE
+ WHEN "catalog_sales"."cs_ship_date_sk" - "catalog_sales"."cs_sold_date_sk" > 120
+ THEN 1
+ ELSE 0
+ END
+ ) AS ">120 days"
+FROM "catalog_sales" AS "catalog_sales"
+JOIN "warehouse" AS "warehouse"
+ ON "catalog_sales"."cs_warehouse_sk" = "warehouse"."w_warehouse_sk"
+JOIN "ship_mode" AS "ship_mode"
+ ON "catalog_sales"."cs_ship_mode_sk" = "ship_mode"."sm_ship_mode_sk"
+JOIN "call_center" AS "call_center"
+ ON "catalog_sales"."cs_call_center_sk" = "call_center"."cc_call_center_sk"
+JOIN "date_dim" AS "date_dim"
+ ON "catalog_sales"."cs_ship_date_sk" = "date_dim"."d_date_sk"
+ AND "date_dim"."d_month_seq" <= 1211
+ AND "date_dim"."d_month_seq" >= 1200
+GROUP BY
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20),
+ "ship_mode"."sm_type",
+ "call_center"."cc_name"
+ORDER BY
+ SUBSTR("warehouse"."w_warehouse_name", 1, 20),
+ "sm_type",
+ "cc_name"
+LIMIT 100;
+
diff --git a/tests/fixtures/optimizer/tpc-h/tpc-h.sql b/tests/fixtures/optimizer/tpc-h/tpc-h.sql
index 272fb26..ae50f92 100644
--- a/tests/fixtures/optimizer/tpc-h/tpc-h.sql
+++ b/tests/fixtures/optimizer/tpc-h/tpc-h.sql
@@ -390,9 +390,9 @@ SELECT
)) AS "revenue"
FROM "supplier" AS "supplier"
JOIN "lineitem" AS "lineitem"
- ON CAST("lineitem"."l_shipdate" AS DATE) <= CAST('1996-12-31' AS DATE)
+ ON "supplier"."s_suppkey" = "lineitem"."l_suppkey"
+ AND CAST("lineitem"."l_shipdate" AS DATE) <= CAST('1996-12-31' AS DATE)
AND CAST("lineitem"."l_shipdate" AS DATE) >= CAST('1995-01-01' AS DATE)
- AND "supplier"."s_suppkey" = "lineitem"."l_suppkey"
JOIN "orders" AS "orders"
ON "orders"."o_orderkey" = "lineitem"."l_orderkey"
JOIN "customer" AS "customer"
@@ -743,11 +743,11 @@ SELECT
FROM "orders" AS "orders"
JOIN "lineitem" AS "lineitem"
ON "lineitem"."l_commitdate" < "lineitem"."l_receiptdate"
- AND CAST("lineitem"."l_receiptdate" AS DATE) < CAST('1995-01-01' AS DATE)
- AND CAST("lineitem"."l_receiptdate" AS DATE) >= CAST('1994-01-01' AS DATE)
AND "lineitem"."l_shipdate" < "lineitem"."l_commitdate"
AND "lineitem"."l_shipmode" IN ('MAIL', 'SHIP')
AND "orders"."o_orderkey" = "lineitem"."l_orderkey"
+ AND CAST("lineitem"."l_receiptdate" AS DATE) < CAST('1995-01-01' AS DATE)
+ AND CAST("lineitem"."l_receiptdate" AS DATE) >= CAST('1994-01-01' AS DATE)
GROUP BY
"lineitem"."l_shipmode"
ORDER BY
@@ -1225,9 +1225,17 @@ order by
s_name;
WITH "_u_0" AS (
SELECT
+ "part"."p_partkey" AS "p_partkey"
+ FROM "part" AS "part"
+ WHERE
+ "part"."p_name" LIKE 'forest%'
+ GROUP BY
+ "part"."p_partkey"
+), "_u_1" AS (
+ SELECT
0.5 * SUM("lineitem"."l_quantity") AS "_col_0",
- "lineitem"."l_partkey" AS "_u_1",
- "lineitem"."l_suppkey" AS "_u_2"
+ "lineitem"."l_partkey" AS "_u_2",
+ "lineitem"."l_suppkey" AS "_u_3"
FROM "lineitem" AS "lineitem"
WHERE
CAST("lineitem"."l_shipdate" AS DATE) < CAST('1995-01-01' AS DATE)
@@ -1235,24 +1243,16 @@ WITH "_u_0" AS (
GROUP BY
"lineitem"."l_partkey",
"lineitem"."l_suppkey"
-), "_u_3" AS (
- SELECT
- "part"."p_partkey" AS "p_partkey"
- FROM "part" AS "part"
- WHERE
- "part"."p_name" LIKE 'forest%'
- GROUP BY
- "part"."p_partkey"
), "_u_4" AS (
SELECT
"partsupp"."ps_suppkey" AS "ps_suppkey"
FROM "partsupp" AS "partsupp"
LEFT JOIN "_u_0" AS "_u_0"
- ON "_u_0"."_u_1" = "partsupp"."ps_partkey" AND "_u_0"."_u_2" = "partsupp"."ps_suppkey"
- LEFT JOIN "_u_3" AS "_u_3"
- ON "partsupp"."ps_partkey" = "_u_3"."p_partkey"
+ ON "partsupp"."ps_partkey" = "_u_0"."p_partkey"
+ LEFT JOIN "_u_1" AS "_u_1"
+ ON "_u_1"."_u_2" = "partsupp"."ps_partkey" AND "_u_1"."_u_3" = "partsupp"."ps_suppkey"
WHERE
- "partsupp"."ps_availqty" > "_u_0"."_col_0" AND NOT "_u_3"."p_partkey" IS NULL
+ "partsupp"."ps_availqty" > "_u_1"."_col_0" AND NOT "_u_0"."p_partkey" IS NULL
GROUP BY
"partsupp"."ps_suppkey"
)