You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kyuubi.apache.org by ch...@apache.org on 2022/05/19 09:03:01 UTC
[incubator-kyuubi] branch master updated: [KYUUBI #2702] Fix TPC-DS columns name and add TPC-DS queries verification
This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-kyuubi.git
The following commit(s) were added to refs/heads/master by this push:
new aa4ac58ce [KYUUBI #2702] Fix TPC-DS columns name and add TPC-DS queries verification
aa4ac58ce is described below
commit aa4ac58ce58b835f311db68544ed5ccffa6bc629
Author: Cheng Pan <ch...@apache.org>
AuthorDate: Thu May 19 17:02:48 2022 +0800
[KYUUBI #2702] Fix TPC-DS columns name and add TPC-DS queries verification
### _Why are the changes needed?_
As there are some issues with the TPC-DS column name reported in https://github.com/trinodb/tpcds/pull/2, we need a workaround before the upstream patch release is available.
This PR also introduces the option `useTableSchema_2_6`(default is `true`), user can set `false` to make the column name compatible with old TPC-DS queries.
Close #2679
### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request
Closes #2702 from pan3793/tpcds-fix-colname.
Closes #2702
82503711 [Cheng Pan] Rename conf
fb007ed7 [Cheng Pan] tpcds 3.2
5ebf8691 [Cheng Pan] Fix TPC-DS columns name
Authored-by: Cheng Pan <ch...@apache.org>
Signed-off-by: Cheng Pan <ch...@apache.org>
---
.../src/main/resources/tpcds_2_4/q30.sql | 4 +-
.../org/apache/kyuubi/tpcds/DataGenerator.scala | 2 +-
.../src/main/resources/tpcds_3.2/q1.sql | 54 +++
.../src/main/resources/tpcds_3.2/q10.sql | 107 +++++
.../src/main/resources/tpcds_3.2/q11.sql | 113 +++++
.../src/main/resources/tpcds_3.2/q12.sql | 49 +++
.../src/main/resources/tpcds_3.2/q13.sql | 85 ++++
.../src/main/resources/tpcds_3.2/q14a.sql | 233 ++++++++++
.../src/main/resources/tpcds_3.2/q14b.sql | 222 ++++++++++
.../src/main/resources/tpcds_3.2/q15.sql | 52 +++
.../src/main/resources/tpcds_3.2/q16.sql | 61 +++
.../src/main/resources/tpcds_3.2/q17.sql | 66 +++
.../src/main/resources/tpcds_3.2/q18.sql | 58 +++
.../src/main/resources/tpcds_3.2/q19.sql | 53 +++
.../src/main/resources/tpcds_3.2/q2.sql | 138 ++++++
.../src/main/resources/tpcds_3.2/q20.sql | 49 +++
.../src/main/resources/tpcds_3.2/q21.sql | 70 +++
.../src/main/resources/tpcds_3.2/q22.sql | 47 +++
.../src/main/resources/tpcds_3.2/q23a.sql | 128 ++++++
.../src/main/resources/tpcds_3.2/q23b.sql | 148 +++++++
.../src/main/resources/tpcds_3.2/q24a.sql | 83 ++++
.../src/main/resources/tpcds_3.2/q24b.sql | 83 ++++
.../src/main/resources/tpcds_3.2/q25.sql | 65 +++
.../src/main/resources/tpcds_3.2/q26.sql | 48 +++
.../src/main/resources/tpcds_3.2/q27.sql | 48 +++
.../src/main/resources/tpcds_3.2/q28.sql | 136 ++++++
.../src/main/resources/tpcds_3.2/q29.sql | 63 +++
.../src/main/resources/tpcds_3.2/q3.sql | 41 ++
.../src/main/resources/tpcds_3.2/q30.sql | 80 ++++
.../src/main/resources/tpcds_3.2/q31.sql | 101 +++++
.../src/main/resources/tpcds_3.2/q32.sql | 43 ++
.../src/main/resources/tpcds_3.2/q33.sql | 126 ++++++
.../src/main/resources/tpcds_3.2/q34.sql | 82 ++++
.../src/main/resources/tpcds_3.2/q35.sql | 97 +++++
.../src/main/resources/tpcds_3.2/q36.sql | 60 +++
.../src/main/resources/tpcds_3.2/q37.sql | 45 ++
.../src/main/resources/tpcds_3.2/q38.sql | 65 +++
.../src/main/resources/tpcds_3.2/q39a.sql | 90 ++++
.../src/main/resources/tpcds_3.2/q39b.sql | 91 ++++
.../src/main/resources/tpcds_3.2/q4.sql | 180 ++++++++
.../src/main/resources/tpcds_3.2/q40.sql | 61 +++
.../src/main/resources/tpcds_3.2/q41.sql | 165 ++++++++
.../src/main/resources/tpcds_3.2/q42.sql | 43 ++
.../src/main/resources/tpcds_3.2/q43.sql | 86 ++++
.../src/main/resources/tpcds_3.2/q44.sql | 110 +++++
.../src/main/resources/tpcds_3.2/q45.sql | 63 +++
.../src/main/resources/tpcds_3.2/q46.sql | 77 ++++
.../src/main/resources/tpcds_3.2/q47.sql | 112 +++++
.../src/main/resources/tpcds_3.2/q48.sql | 75 ++++
.../src/main/resources/tpcds_3.2/q49.sql | 221 ++++++++++
.../src/main/resources/tpcds_3.2/q5.sql | 185 ++++++++
.../src/main/resources/tpcds_3.2/q50.sql | 100 +++++
.../src/main/resources/tpcds_3.2/q51.sql | 110 +++++
.../src/main/resources/tpcds_3.2/q52.sql | 42 ++
.../src/main/resources/tpcds_3.2/q53.sql | 90 ++++
.../src/main/resources/tpcds_3.2/q54.sql | 106 +++++
.../src/main/resources/tpcds_3.2/q55.sql | 39 ++
.../src/main/resources/tpcds_3.2/q56.sql | 127 ++++++
.../src/main/resources/tpcds_3.2/q57.sql | 105 +++++
.../src/main/resources/tpcds_3.2/q58.sql | 137 ++++++
.../src/main/resources/tpcds_3.2/q59.sql | 137 ++++++
.../src/main/resources/tpcds_3.2/q6.sql | 57 +++
.../src/main/resources/tpcds_3.2/q60.sql | 127 ++++++
.../src/main/resources/tpcds_3.2/q61.sql | 78 ++++
.../src/main/resources/tpcds_3.2/q62.sql | 77 ++++
.../src/main/resources/tpcds_3.2/q63.sql | 90 ++++
.../src/main/resources/tpcds_3.2/q64.sql | 164 +++++++
.../src/main/resources/tpcds_3.2/q65.sql | 77 ++++
.../src/main/resources/tpcds_3.2/q66.sql | 432 +++++++++++++++++++
.../src/main/resources/tpcds_3.2/q67.sql | 87 ++++
.../src/main/resources/tpcds_3.2/q68.sql | 71 ++++
.../src/main/resources/tpcds_3.2/q69.sql | 89 ++++
.../src/main/resources/tpcds_3.2/q7.sql | 48 +++
.../src/main/resources/tpcds_3.2/q70.sql | 76 ++++
.../src/main/resources/tpcds_3.2/q71.sql | 84 ++++
.../src/main/resources/tpcds_3.2/q72.sql | 67 +++
.../src/main/resources/tpcds_3.2/q73.sql | 69 +++
.../src/main/resources/tpcds_3.2/q74.sql | 97 +++++
.../src/main/resources/tpcds_3.2/q75.sql | 119 ++++++
.../src/main/resources/tpcds_3.2/q76.sql | 50 +++
.../src/main/resources/tpcds_3.2/q77.sql | 162 +++++++
.../src/main/resources/tpcds_3.2/q78.sql | 122 ++++++
.../src/main/resources/tpcds_3.2/q79.sql | 65 +++
.../src/main/resources/tpcds_3.2/q8.sql | 469 +++++++++++++++++++++
.../src/main/resources/tpcds_3.2/q80.sql | 145 +++++++
.../src/main/resources/tpcds_3.2/q81.sql | 86 ++++
.../src/main/resources/tpcds_3.2/q82.sql | 45 ++
.../src/main/resources/tpcds_3.2/q83.sql | 125 ++++++
.../src/main/resources/tpcds_3.2/q84.sql | 40 ++
.../src/main/resources/tpcds_3.2/q85.sql | 96 +++++
.../src/main/resources/tpcds_3.2/q86.sql | 49 +++
.../src/main/resources/tpcds_3.2/q87.sql | 69 +++
.../src/main/resources/tpcds_3.2/q88.sql | 260 ++++++++++++
.../src/main/resources/tpcds_3.2/q89.sql | 75 ++++
.../src/main/resources/tpcds_3.2/q9.sql | 162 +++++++
.../src/main/resources/tpcds_3.2/q90.sql | 60 +++
.../src/main/resources/tpcds_3.2/q91.sql | 59 +++
.../src/main/resources/tpcds_3.2/q92.sql | 45 ++
.../src/main/resources/tpcds_3.2/q93.sql | 48 +++
.../src/main/resources/tpcds_3.2/q94.sql | 55 +++
.../src/main/resources/tpcds_3.2/q95.sql | 65 +++
.../src/main/resources/tpcds_3.2/q96.sql | 36 ++
.../src/main/resources/tpcds_3.2/q97.sql | 77 ++++
.../src/main/resources/tpcds_3.2/q98.sql | 47 +++
.../src/main/resources/tpcds_3.2/q99.sql | 77 ++++
.../kyuubi/spark/connector/tpcds/TPCDSTable.scala | 20 +-
.../spark/connector/tpcds/TPCDSQuerySuite.scala | 57 +++
.../spark/connector/tpcds/TPCDSTableSuite.scala | 2 +-
108 files changed, 10128 insertions(+), 6 deletions(-)
diff --git a/dev/kyuubi-tpcds/src/main/resources/tpcds_2_4/q30.sql b/dev/kyuubi-tpcds/src/main/resources/tpcds_2_4/q30.sql
index e2e000d5d..2b1173892 100644
--- a/dev/kyuubi-tpcds/src/main/resources/tpcds_2_4/q30.sql
+++ b/dev/kyuubi-tpcds/src/main/resources/tpcds_2_4/q30.sql
@@ -28,7 +28,7 @@
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
+ ,c_last_review_date_sk,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
@@ -38,6 +38,6 @@
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
+ ,c_last_review_date_sk,ctr_total_return
limit 100
diff --git a/dev/kyuubi-tpcds/src/main/scala/org/apache/kyuubi/tpcds/DataGenerator.scala b/dev/kyuubi-tpcds/src/main/scala/org/apache/kyuubi/tpcds/DataGenerator.scala
index b46367a36..25a2bcf11 100644
--- a/dev/kyuubi-tpcds/src/main/scala/org/apache/kyuubi/tpcds/DataGenerator.scala
+++ b/dev/kyuubi-tpcds/src/main/scala/org/apache/kyuubi/tpcds/DataGenerator.scala
@@ -307,7 +307,7 @@ object DataGenerator {
$"c_birth_country" .string,
$"c_login" .string,
$"c_email_address" .string,
- $"c_last_review_date" .string)
+ $"c_last_review_date_sk" .string)
val customer_address: TableGenerator = TableGenerator(
"customer_address",
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q1.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q1.sql
new file mode 100644
index 000000000..3d88769e5
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q1.sql
@@ -0,0 +1,54 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q1 --
+with customer_total_return as (
+ select
+ sr_customer_sk as ctr_customer_sk,
+ sr_store_sk as ctr_store_sk,
+ sum(SR_FEE) as ctr_total_return
+ from
+ store_returns,
+ date_dim
+ where
+ sr_returned_date_sk = d_date_sk
+ and d_year = 2000
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q10.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q10.sql
new file mode 100644
index 000000000..f0248cb7f
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q10.sql
@@ -0,0 +1,107 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q10 --
+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 (
+ 'Walker County',
+ 'Richland County',
+ 'Gaines County',
+ 'Douglas County',
+ 'Dona Ana 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q11.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q11.sql
new file mode 100644
index 000000000..fcbc4a548
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q11.sql
@@ -0,0 +1,113 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q11 --
+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_email_address
+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_email_address
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q12.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q12.sql
new file mode 100644
index 000000000..48da9027d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q12.sql
@@ -0,0 +1,49 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q12 --
+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 ('Jewelry', 'Sports', 'Books')
+ and ws_sold_date_sk = d_date_sk
+ and d_date between cast('2001-01-12' as date)
+ and (cast('2001-01-12' as date) + interval 30 days)
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q13.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q13.sql
new file mode 100644
index 000000000..c3ddd255d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q13.sql
@@ -0,0 +1,85 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q13 --
+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 = 'D'
+ and cd_education_status = '2 yr 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 = 'S'
+ and cd_education_status = 'Secondary'
+ 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 = 'W'
+ and cd_education_status = 'Advanced Degree'
+ 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 ('CO', 'IL', 'MN')
+ and ss_net_profit between 100
+ and 200
+ )
+ or (
+ ss_addr_sk = ca_address_sk
+ and ca_country = 'United States'
+ and ca_state in ('OH', 'MT', 'NM')
+ and ss_net_profit between 150
+ and 300
+ )
+ or (
+ ss_addr_sk = ca_address_sk
+ and ca_country = 'United States'
+ and ca_state in ('TX', 'MO', 'MI')
+ and ss_net_profit between 50
+ and 250
+ )
+ );
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14a.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14a.sql
new file mode 100644
index 000000000..97d794461
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14a.sql
@@ -0,0 +1,233 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q14a --
+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 1998
+ AND 1998 + 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 1998
+ AND 1998 + 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 1998
+ AND 1998 + 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 1998
+ and 1998 + 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 1998
+ and 1998 + 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 1998
+ and 1998 + 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 = 1998 + 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 = 1998 + 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 = 1998 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14b.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14b.sql
new file mode 100644
index 000000000..a83548c25
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q14b.sql
@@ -0,0 +1,222 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q14b --
+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 1998
+ AND 1998 + 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 1998
+ AND 1998 + 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 1998
+ AND 1998 + 2
+ ) x
+ 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 1998
+ and 1998 + 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 1998
+ and 1998 + 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 1998
+ and 1998 + 2
+ ) x
+)
+select
+ this_year.channel ty_channel,
+ this_year.i_brand_id ty_brand,
+ this_year.i_class_id ty_class,
+ this_year.i_category_id ty_category,
+ this_year.sales ty_sales,
+ this_year.number_sales ty_number_sales,
+ last_year.channel ly_channel,
+ last_year.i_brand_id ly_brand,
+ last_year.i_class_id ly_class,
+ last_year.i_category_id ly_category,
+ last_year.sales ly_sales,
+ last_year.number_sales ly_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_week_seq = (
+ select
+ d_week_seq
+ from
+ date_dim
+ where
+ d_year = 1998 + 1
+ and d_moy = 12
+ and d_dom = 16
+ )
+ group by
+ i_brand_id,
+ i_class_id,
+ i_category_id
+ having
+ sum(ss_quantity * ss_list_price) > (
+ select
+ average_sales
+ from
+ avg_sales
+ )
+ ) this_year,
+ (
+ 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_week_seq = (
+ select
+ d_week_seq
+ from
+ date_dim
+ where
+ d_year = 1998
+ and d_moy = 12
+ and d_dom = 16
+ )
+ group by
+ i_brand_id,
+ i_class_id,
+ i_category_id
+ having
+ sum(ss_quantity * ss_list_price) > (
+ select
+ average_sales
+ from
+ avg_sales
+ )
+ ) last_year
+where
+ this_year.i_brand_id = last_year.i_brand_id
+ and this_year.i_class_id = last_year.i_class_id
+ and this_year.i_category_id = last_year.i_category_id
+order by
+ this_year.channel,
+ this_year.i_brand_id,
+ this_year.i_class_id,
+ this_year.i_category_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q15.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q15.sql
new file mode 100644
index 000000000..f2d39c64f
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q15.sql
@@ -0,0 +1,52 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q15 --
+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 = 2
+ and d_year = 2000
+group by
+ ca_zip
+order by
+ ca_zip
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q16.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q16.sql
new file mode 100644
index 000000000..1094a0818
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q16.sql
@@ -0,0 +1,61 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q16 --
+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 '1999-2-01'
+ and (cast('1999-2-01' as date) + interval 60 days)
+ and cs1.cs_ship_date_sk = d_date_sk
+ and cs1.cs_ship_addr_sk = ca_address_sk
+ and ca_state = 'IL'
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q17.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q17.sql
new file mode 100644
index 000000000..6d8ea1c80
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q17.sql
@@ -0,0 +1,66 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q17 --
+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) 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 = '1998Q1'
+ 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 ('1998Q1', '1998Q2', '1998Q3')
+ 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 ('1998Q1', '1998Q2', '1998Q3')
+group by
+ i_item_id,
+ i_item_desc,
+ s_state
+order by
+ i_item_id,
+ i_item_desc,
+ s_state
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q18.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q18.sql
new file mode 100644
index 000000000..4b03c2b2c
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q18.sql
@@ -0,0 +1,58 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q18 --
+select
+ i_item_id,
+ ca_country,
+ ca_state,
+ ca_county,
+ avg(cast(cs_quantity as decimal(12, 2))) agg1,
+ avg(cast(cs_list_price as decimal(12, 2))) agg2,
+ avg(cast(cs_coupon_amt as decimal(12, 2))) agg3,
+ avg(cast(cs_sales_price as decimal(12, 2))) agg4,
+ avg(cast(cs_net_profit as decimal(12, 2))) agg5,
+ avg(cast(c_birth_year as decimal(12, 2))) agg6,
+ avg(cast(cd1.cd_dep_count as decimal(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 = 'M'
+ and cd1.cd_education_status = 'College'
+ and c_current_cdemo_sk = cd2.cd_demo_sk
+ and c_current_addr_sk = ca_address_sk
+ and c_birth_month in (9, 5, 12, 4, 1, 10)
+ and d_year = 2001
+ and ca_state in ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN')
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q19.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q19.sql
new file mode 100644
index 000000000..411327904
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q19.sql
@@ -0,0 +1,53 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q19 --
+select
+ i_brand_id brand_id,
+ i_brand brand,
+ i_manufact_id,
+ i_manufact,
+ sum(ss_ext_sales_price) ext_price
+from
+ date_dim,
+ store_sales,
+ item,
+ customer,
+ customer_address,
+ store
+where
+ d_date_sk = ss_sold_date_sk
+ and ss_item_sk = i_item_sk
+ and i_manager_id = 7
+ and d_moy = 11
+ and d_year = 1999
+ and ss_customer_sk = c_customer_sk
+ and c_current_addr_sk = ca_address_sk
+ and substr(ca_zip, 1, 5) <> substr(s_zip, 1, 5)
+ and ss_store_sk = s_store_sk
+group by
+ i_brand,
+ i_brand_id,
+ i_manufact_id,
+ i_manufact
+order by
+ ext_price desc,
+ i_brand,
+ i_brand_id,
+ i_manufact_id,
+ i_manufact
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q2.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q2.sql
new file mode 100644
index 000000000..2dfd11cf5
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q2.sql
@@ -0,0 +1,138 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q2 --
+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 = 2001
+ ) 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 = 2001 + 1
+ ) z
+where
+ d_week_seq1 = d_week_seq2 - 53
+order by
+ d_week_seq1;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q20.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q20.sql
new file mode 100644
index 000000000..94602a43d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q20.sql
@@ -0,0 +1,49 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q20 --
+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 ('Jewelry', 'Sports', 'Books')
+ and cs_sold_date_sk = d_date_sk
+ and d_date between cast('2001-01-12' as date)
+ and (cast('2001-01-12' as date) + interval 30 days)
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q21.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q21.sql
new file mode 100644
index 000000000..1e1c74c6e
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q21.sql
@@ -0,0 +1,70 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q21 --
+select
+ *
+from
+ (
+ select
+ w_warehouse_name,
+ i_item_id,
+ sum(
+ case
+ when (
+ cast(d_date as date) < cast('1998-04-08' as date)
+ ) then inv_quantity_on_hand
+ else 0
+ end
+ ) as inv_before,
+ sum(
+ case
+ when (
+ cast(d_date as date) >= cast('1998-04-08' 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('1998-04-08' as date) - interval 30 days)
+ and (cast('1998-04-08' as date) + interval 30 days)
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q22.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q22.sql
new file mode 100644
index 000000000..b20739f27
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q22.sql
@@ -0,0 +1,47 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q22 --
+select
+ i_product_name,
+ i_brand,
+ i_class,
+ i_category,
+ avg(inv_quantity_on_hand) qoh
+from
+ inventory,
+ date_dim,
+ item
+where
+ inv_date_sk = d_date_sk
+ and inv_item_sk = i_item_sk
+ and d_month_seq between 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23a.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23a.sql
new file mode 100644
index 000000000..a614cb849
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23a.sql
@@ -0,0 +1,128 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q23a --
+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 (1999, 1999 + 1, 1999 + 2, 1999 + 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 (1999, 1999 + 1, 1999 + 2, 1999 + 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 = 1999
+ and d_moy = 1
+ 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 = 1999
+ and d_moy = 1
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23b.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23b.sql
new file mode 100644
index 000000000..c7e7af3ef
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q23b.sql
@@ -0,0 +1,148 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q23b --
+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 (1999, 1999 + 1, 1999 + 2, 1999 + 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 (1999, 1999 + 1, 1999 + 2, 1999 + 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
+ c_last_name,
+ c_first_name,
+ sales
+from
+ (
+ select
+ c_last_name,
+ c_first_name,
+ sum(cs_quantity * cs_list_price) sales
+ from
+ catalog_sales,
+ customer,
+ date_dim
+ where
+ d_year = 1999
+ and d_moy = 1
+ 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
+ )
+ and cs_bill_customer_sk = c_customer_sk
+ group by
+ c_last_name,
+ c_first_name
+ union
+ all
+ select
+ c_last_name,
+ c_first_name,
+ sum(ws_quantity * ws_list_price) sales
+ from
+ web_sales,
+ customer,
+ date_dim
+ where
+ d_year = 1999
+ and d_moy = 1
+ 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
+ )
+ and ws_bill_customer_sk = c_customer_sk
+ group by
+ c_last_name,
+ c_first_name
+ )
+order by
+ c_last_name,
+ c_first_name,
+ sales
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24a.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24a.sql
new file mode 100644
index 000000000..280177e7f
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24a.sql
@@ -0,0 +1,83 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q24a --
+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_sales_price) 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_current_addr_sk = ca_address_sk
+ and c_birth_country <> upper(ca_country)
+ and s_zip = ca_zip
+ and s_market_id = 7
+ 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 = 'orchid'
+group by
+ c_last_name,
+ c_first_name,
+ s_store_name
+having
+ sum(netpaid) > (
+ select
+ 0.05 * avg(netpaid)
+ from
+ ssales
+ )
+order by
+ c_last_name,
+ c_first_name,
+ s_store_name;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24b.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24b.sql
new file mode 100644
index 000000000..0bae81854
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q24b.sql
@@ -0,0 +1,83 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q24b --
+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_sales_price) 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_current_addr_sk = ca_address_sk
+ and c_birth_country <> upper(ca_country)
+ and s_zip = ca_zip
+ and s_market_id = 7
+ 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 = 'chiffon'
+group by
+ c_last_name,
+ c_first_name,
+ s_store_name
+having
+ sum(netpaid) > (
+ select
+ 0.05 * avg(netpaid)
+ from
+ ssales
+ )
+order by
+ c_last_name,
+ c_first_name,
+ s_store_name;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q25.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q25.sql
new file mode 100644
index 000000000..ff27e8ec8
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q25.sql
@@ -0,0 +1,65 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q25 --
+select
+ i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name,
+ sum(ss_net_profit) as store_sales_profit,
+ sum(sr_net_loss) as store_returns_loss,
+ sum(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 = 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 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 = 2000
+ 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 = 2000
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q26.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q26.sql
new file mode 100644
index 000000000..401d421df
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q26.sql
@@ -0,0 +1,48 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q26 --
+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 = 'Primary'
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q27.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q27.sql
new file mode 100644
index 000000000..98caea454
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q27.sql
@@ -0,0 +1,48 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q27 --
+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 = 'F'
+ and cd_marital_status = 'W'
+ and cd_education_status = 'Primary'
+ and d_year = 1998
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q28.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q28.sql
new file mode 100644
index 000000000..df5c615fa
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q28.sql
@@ -0,0 +1,136 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q28 --
+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 11
+ and 11 + 10
+ or ss_coupon_amt between 460
+ and 460 + 1000
+ or ss_wholesale_cost between 14
+ and 14 + 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 91
+ and 91 + 10
+ or ss_coupon_amt between 1430
+ and 1430 + 1000
+ or ss_wholesale_cost between 32
+ and 32 + 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 66
+ and 66 + 10
+ or ss_coupon_amt between 920
+ and 920 + 1000
+ or ss_wholesale_cost between 4
+ and 4 + 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 142
+ and 142 + 10
+ or ss_coupon_amt between 3054
+ and 3054 + 1000
+ or ss_wholesale_cost between 80
+ and 80 + 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 135
+ and 135 + 10
+ or ss_coupon_amt between 14180
+ and 14180 + 1000
+ or ss_wholesale_cost between 38
+ and 38 + 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 28
+ and 28 + 10
+ or ss_coupon_amt between 2513
+ and 2513 + 1000
+ or ss_wholesale_cost between 42
+ and 42 + 20
+ )
+ ) B6
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q29.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q29.sql
new file mode 100644
index 000000000..480d8ca97
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q29.sql
@@ -0,0 +1,63 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q29 --
+select
+ i_item_id,
+ i_item_desc,
+ s_store_id,
+ s_store_name,
+ sum(ss_quantity) as store_sales_quantity,
+ sum(sr_return_quantity) as store_returns_quantity,
+ sum(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 = 1999
+ 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 = 1999
+ 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 (1999, 1999 + 1, 1999 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q3.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q3.sql
new file mode 100644
index 000000000..e823f0e25
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q3.sql
@@ -0,0 +1,41 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q3 --
+select
+ dt.d_year,
+ item.i_brand_id brand_id,
+ item.i_brand brand,
+ sum(ss_ext_sales_price) 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 = 436
+ and dt.d_moy = 12
+group by
+ dt.d_year,
+ item.i_brand,
+ item.i_brand_id
+order by
+ dt.d_year,
+ sum_agg desc,
+ brand_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q30.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q30.sql
new file mode 100644
index 000000000..7f5fbb2e0
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q30.sql
@@ -0,0 +1,80 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q30 --
+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 = 2002
+ 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_sk,
+ 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 = 'IL'
+ 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_sk,
+ ctr_total_return
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q31.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q31.sql
new file mode 100644
index 000000000..06c7d2e85
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q31.sql
@@ -0,0 +1,101 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q31 --
+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 = 2000
+ and ss1.ca_county = ss2.ca_county
+ and ss2.d_qoy = 2
+ and ss2.d_year = 2000
+ and ss2.ca_county = ss3.ca_county
+ and ss3.d_qoy = 3
+ and ss3.d_year = 2000
+ and ss1.ca_county = ws1.ca_county
+ and ws1.d_qoy = 1
+ and ws1.d_year = 2000
+ and ws1.ca_county = ws2.ca_county
+ and ws2.d_qoy = 2
+ and ws2.d_year = 2000
+ and ws1.ca_county = ws3.ca_county
+ and ws3.d_qoy = 3
+ and ws3.d_year = 2000
+ and case
+ when ws1.web_sales > 0 then ws2.web_sales / 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q32.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q32.sql
new file mode 100644
index 000000000..b09f43eb9
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q32.sql
@@ -0,0 +1,43 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q32 --
+select
+ sum(cs_ext_discount_amt) as `excess discount amount`
+from
+ catalog_sales,
+ item,
+ date_dim
+where
+ i_manufact_id = 269
+ and i_item_sk = cs_item_sk
+ and d_date between '1998-03-18'
+ and (cast('1998-03-18' as date) + interval 90 days)
+ 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 '1998-03-18'
+ and (cast('1998-03-18' as date) + interval 90 days)
+ and d_date_sk = cs_sold_date_sk
+ )
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q33.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q33.sql
new file mode 100644
index 000000000..0e15da398
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q33.sql
@@ -0,0 +1,126 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q33 --
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q34.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q34.sql
new file mode 100644
index 000000000..48f364dd8
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q34.sql
@@ -0,0 +1,82 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q34 --
+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 (1998, 1998 + 1, 1998 + 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,
+ ss_ticket_number;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q35.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q35.sql
new file mode 100644
index 000000000..870c7d575
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q35.sql
@@ -0,0 +1,97 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q35 --
+select
+ ca_state,
+ cd_gender,
+ cd_marital_status,
+ cd_dep_count,
+ count(*) cnt1,
+ avg(cd_dep_count),
+ max(cd_dep_count),
+ sum(cd_dep_count),
+ cd_dep_employed_count,
+ count(*) cnt2,
+ avg(cd_dep_employed_count),
+ max(cd_dep_employed_count),
+ sum(cd_dep_employed_count),
+ cd_dep_college_count,
+ count(*) cnt3,
+ avg(cd_dep_college_count),
+ max(cd_dep_college_count),
+ sum(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 = 1999
+ 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 = 1999
+ 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 = 1999
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q36.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q36.sql
new file mode 100644
index 000000000..fa83d5aa1
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q36.sql
@@ -0,0 +1,60 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q36 --
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q37.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q37.sql
new file mode 100644
index 000000000..167372139
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q37.sql
@@ -0,0 +1,45 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q37 --
+select
+ i_item_id,
+ i_item_desc,
+ i_current_price
+from
+ item,
+ inventory,
+ date_dim,
+ catalog_sales
+where
+ i_current_price between 22
+ and 22 + 30
+ and inv_item_sk = i_item_sk
+ and d_date_sk = inv_date_sk
+ and d_date between cast('2001-06-02' as date)
+ and (cast('2001-06-02' as date) + interval 60 days)
+ and i_manufact_id in (678, 964, 918, 849)
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q38.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q38.sql
new file mode 100644
index 000000000..c7a2d7c6b
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q38.sql
@@ -0,0 +1,65 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q38 --
+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 1212
+ and 1212 + 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 1212
+ and 1212 + 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 1212
+ and 1212 + 11
+ ) hot_cust
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39a.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39a.sql
new file mode 100644
index 000000000..5647b5145
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39a.sql
@@ -0,0 +1,90 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q39a --
+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 = 1998
+ 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 = 4
+ and inv2.d_moy = 4 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39b.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39b.sql
new file mode 100644
index 000000000..22f2be995
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q39b.sql
@@ -0,0 +1,91 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q39b --
+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 = 1998
+ 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 = 4
+ and inv2.d_moy = 4 + 1
+ and inv1.cov > 1.5
+order by
+ inv1.w_warehouse_sk,
+ inv1.i_item_sk,
+ inv1.d_moy,
+ inv1.mean,
+ inv1.cov,
+ inv2.d_moy,
+ inv2.mean,
+ inv2.cov;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q4.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q4.sql
new file mode 100644
index 000000000..d59d83a8f
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q4.sql
@@ -0,0 +1,180 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q4 --
+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_email_address
+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_email_address
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q40.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q40.sql
new file mode 100644
index 000000000..3ca5e0310
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q40.sql
@@ -0,0 +1,61 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q40 --
+select
+ w_state,
+ i_item_id,
+ sum(
+ case
+ when (
+ cast(d_date as date) < cast('1998-04-08' 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('1998-04-08' 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('1998-04-08' as date) - interval 30 days)
+ and (cast('1998-04-08' as date) + interval 30 days)
+group by
+ w_state,
+ i_item_id
+order by
+ w_state,
+ i_item_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q41.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q41.sql
new file mode 100644
index 000000000..9e2812f54
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q41.sql
@@ -0,0 +1,165 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q41 --
+select
+ distinct(i_product_name)
+from
+ item i1
+where
+ i_manufact_id between 742
+ and 742 + 40
+ and (
+ select
+ count(*) as item_cnt
+ from
+ item
+ where
+ (
+ i_manufact = i1.i_manufact
+ and (
+ (
+ i_category = 'Women'
+ and (
+ i_color = 'orchid'
+ or i_color = 'papaya'
+ )
+ and (
+ i_units = 'Pound'
+ or i_units = 'Lb'
+ )
+ and (
+ i_size = 'petite'
+ or i_size = 'medium'
+ )
+ )
+ or (
+ i_category = 'Women'
+ and (
+ i_color = 'burlywood'
+ or i_color = 'navy'
+ )
+ and (
+ i_units = 'Bundle'
+ or i_units = 'Each'
+ )
+ and (
+ i_size = 'N/A'
+ or i_size = 'extra large'
+ )
+ )
+ or (
+ i_category = 'Men'
+ and (
+ i_color = 'bisque'
+ or i_color = 'azure'
+ )
+ and (
+ i_units = 'N/A'
+ or i_units = 'Tsp'
+ )
+ and (
+ i_size = 'small'
+ or i_size = 'large'
+ )
+ )
+ or (
+ i_category = 'Men'
+ and (
+ i_color = 'chocolate'
+ or i_color = 'cornflower'
+ )
+ and (
+ i_units = 'Bunch'
+ or i_units = 'Gross'
+ )
+ and (
+ i_size = 'petite'
+ or i_size = 'medium'
+ )
+ )
+ )
+ )
+ or (
+ i_manufact = i1.i_manufact
+ and (
+ (
+ i_category = 'Women'
+ and (
+ i_color = 'salmon'
+ or i_color = 'midnight'
+ )
+ and (
+ i_units = 'Oz'
+ or i_units = 'Box'
+ )
+ and (
+ i_size = 'petite'
+ or i_size = 'medium'
+ )
+ )
+ or (
+ i_category = 'Women'
+ and (
+ i_color = 'snow'
+ or i_color = 'steel'
+ )
+ and (
+ i_units = 'Carton'
+ or i_units = 'Tbl'
+ )
+ and (
+ i_size = 'N/A'
+ or i_size = 'extra large'
+ )
+ )
+ or (
+ i_category = 'Men'
+ and (
+ i_color = 'purple'
+ or i_color = 'gainsboro'
+ )
+ and (
+ i_units = 'Dram'
+ or i_units = 'Unknown'
+ )
+ and (
+ i_size = 'small'
+ or i_size = 'large'
+ )
+ )
+ or (
+ i_category = 'Men'
+ and (
+ i_color = 'metallic'
+ or i_color = 'forest'
+ )
+ and (
+ i_units = 'Gram'
+ or i_units = 'Ounce'
+ )
+ and (
+ i_size = 'petite'
+ or i_size = 'medium'
+ )
+ )
+ )
+ )
+ ) > 0
+order by
+ i_product_name
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q42.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q42.sql
new file mode 100644
index 000000000..0716cbc93
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q42.sql
@@ -0,0 +1,43 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q42 --
+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 = 1998
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q43.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q43.sql
new file mode 100644
index 000000000..bb8e306e9
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q43.sql
@@ -0,0 +1,86 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q43 --
+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 = 1998
+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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q44.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q44.sql
new file mode 100644
index 000000000..79471e4e4
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q44.sql
@@ -0,0 +1,110 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q44 --
+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 = 2
+ 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 = 2
+ and ss_hdemo_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 = 2
+ 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 = 2
+ and ss_hdemo_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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q45.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q45.sql
new file mode 100644
index 000000000..dde36269b
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q45.sql
@@ -0,0 +1,63 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q45 --
+select
+ ca_zip,
+ ca_county,
+ 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 = 2
+ and d_year = 2000
+group by
+ ca_zip,
+ ca_county
+order by
+ ca_zip,
+ ca_county
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q46.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q46.sql
new file mode 100644
index 000000000..a573dccde
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q46.sql
@@ -0,0 +1,77 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q46 --
+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 = 5
+ or household_demographics.hd_vehicle_count = 3
+ )
+ and date_dim.d_dow in (6, 0)
+ and date_dim.d_year in (1999, 1999 + 1, 1999 + 2)
+ and store.s_city in (
+ 'Midway',
+ 'Fairview',
+ 'Fairview',
+ 'Midway',
+ '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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q47.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q47.sql
new file mode 100644
index 000000000..8632d7b26
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q47.sql
@@ -0,0 +1,112 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q47 --
+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 = 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,
+ s_store_name,
+ s_company_name,
+ d_year,
+ d_moy
+),
+v2 as (
+ select
+ v1.i_category,
+ v1.i_brand,
+ 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 = 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,
+ nsum
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q48.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q48.sql
new file mode 100644
index 000000000..ecae61a7a
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q48.sql
@@ -0,0 +1,75 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q48 --
+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 = 1998
+ and (
+ (
+ cd_demo_sk = ss_cdemo_sk
+ and cd_marital_status = 'M'
+ and cd_education_status = '4 yr Degree'
+ and ss_sales_price between 100.00
+ and 150.00
+ )
+ or (
+ cd_demo_sk = ss_cdemo_sk
+ and cd_marital_status = 'D'
+ and cd_education_status = 'Primary'
+ and ss_sales_price between 50.00
+ and 100.00
+ )
+ or (
+ cd_demo_sk = ss_cdemo_sk
+ and cd_marital_status = 'U'
+ and cd_education_status = 'Advanced 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 ('KY', 'GA', 'NM')
+ and ss_net_profit between 0
+ and 2000
+ )
+ or (
+ ss_addr_sk = ca_address_sk
+ and ca_country = 'United States'
+ and ca_state in ('MT', 'OR', 'IN')
+ and ss_net_profit between 150
+ and 3000
+ )
+ or (
+ ss_addr_sk = ca_address_sk
+ and ca_country = 'United States'
+ and ca_state in ('WI', 'MO', 'WV')
+ and ss_net_profit between 50
+ and 25000
+ )
+ );
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q49.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q49.sql
new file mode 100644
index 000000000..8eec88c22
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q49.sql
@@ -0,0 +1,221 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q49 --
+select
+ channel,
+ item,
+ return_ratio,
+ return_rank,
+ currency_rank
+from
+ (
+ 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 decimal(15, 4)
+ ) / cast(
+ sum(coalesce(ws.ws_quantity, 0)) as decimal(15, 4)
+ )
+ ) as return_ratio,
+ (
+ cast(
+ sum(coalesce(wr.wr_return_amt, 0)) as decimal(15, 4)
+ ) / cast(
+ sum(coalesce(ws.ws_net_paid, 0)) as decimal(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 = 2000
+ 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 decimal(15, 4)
+ ) / cast(
+ sum(coalesce(cs.cs_quantity, 0)) as decimal(15, 4)
+ )
+ ) as return_ratio,
+ (
+ cast(
+ sum(coalesce(cr.cr_return_amount, 0)) as decimal(15, 4)
+ ) / cast(
+ sum(coalesce(cs.cs_net_paid, 0)) as decimal(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 = 2000
+ 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 decimal(15, 4)
+ ) / cast(
+ sum(coalesce(sts.ss_quantity, 0)) as decimal(15, 4)
+ )
+ ) as return_ratio,
+ (
+ cast(
+ sum(coalesce(sr.sr_return_amt, 0)) as decimal(15, 4)
+ ) / cast(
+ sum(coalesce(sts.ss_net_paid, 0)) as decimal(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 = 2000
+ 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,
+ 2
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q5.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q5.sql
new file mode 100644
index 000000000..8d0136d79
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q5.sql
@@ -0,0 +1,185 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q5 --
+with ssr as (
+ select
+ s_store_id,
+ sum(sales_price) as sales,
+ sum(profit) as profit,
+ sum(return_amt) as returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 14 days)
+ 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 returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 14 days)
+ 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 returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 14 days)
+ and wsr_web_site_sk = web_site_sk
+ group by
+ web_site_id
+)
+select
+ channel,
+ id,
+ sum(sales) as sales,
+ sum(returns) as returns,
+ sum(profit) as profit
+from
+ (
+ select
+ 'store channel' as channel,
+ 'store' || s_store_id as id,
+ sales,
+ returns,
+ (profit - profit_loss) as profit
+ from
+ ssr
+ union
+ all
+ select
+ 'catalog channel' as channel,
+ 'catalog_page' || cp_catalog_page_id as id,
+ sales,
+ returns,
+ (profit - profit_loss) as profit
+ from
+ csr
+ union
+ all
+ select
+ 'web channel' as channel,
+ 'web_site' || web_site_id as id,
+ sales,
+ returns,
+ (profit - profit_loss) as profit
+ from
+ wsr
+ ) x
+group by
+ rollup (channel, id)
+order by
+ channel,
+ id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q50.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q50.sql
new file mode 100644
index 000000000..da04a4b40
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q50.sql
@@ -0,0 +1,100 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q50 --
+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 = 2000
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q51.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q51.sql
new file mode 100644
index 000000000..8bcf6c5e2
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q51.sql
@@ -0,0 +1,110 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q51 --
+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 1212
+ and 1212 + 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 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q52.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q52.sql
new file mode 100644
index 000000000..1c2ba7f00
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q52.sql
@@ -0,0 +1,42 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q52 --
+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 = 12
+ and dt.d_year = 1998
+group by
+ dt.d_year,
+ item.i_brand,
+ item.i_brand_id
+order by
+ dt.d_year,
+ ext_price desc,
+ brand_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q53.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q53.sql
new file mode 100644
index 000000000..4df9ba5e6
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q53.sql
@@ -0,0 +1,90 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q53 --
+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 (
+ 1212,
+ 1212 + 1,
+ 1212 + 2,
+ 1212 + 3,
+ 1212 + 4,
+ 1212 + 5,
+ 1212 + 6,
+ 1212 + 7,
+ 1212 + 8,
+ 1212 + 9,
+ 1212 + 10,
+ 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q54.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q54.sql
new file mode 100644
index 000000000..2110e5ec6
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q54.sql
@@ -0,0 +1,106 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q54 --
+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 = 'Jewelry'
+ and i_class = 'consignment'
+ and c_customer_sk = cs_or_ws_sales.customer_sk
+ and d_moy = 3
+ and d_year = 1999
+),
+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 = 1999
+ and d_moy = 3
+ )
+ and (
+ select
+ distinct d_month_seq + 3
+ from
+ date_dim
+ where
+ d_year = 1999
+ and d_moy = 3
+ )
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q55.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q55.sql
new file mode 100644
index 000000000..85fb9fd75
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q55.sql
@@ -0,0 +1,39 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q55 --
+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 = 36
+ and d_moy = 12
+ and d_year = 2001
+group by
+ i_brand,
+ i_brand_id
+order by
+ ext_price desc,
+ i_brand_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q56.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q56.sql
new file mode 100644
index 000000000..56ce5a33d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q56.sql
@@ -0,0 +1,127 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q56 --
+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 ('orchid', 'chiffon', 'lace')
+ )
+ and ss_item_sk = i_item_sk
+ and ss_sold_date_sk = d_date_sk
+ and d_year = 2000
+ and d_moy = 1
+ and ss_addr_sk = ca_address_sk
+ and ca_gmt_offset = -8
+ 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 ('orchid', 'chiffon', 'lace')
+ )
+ and cs_item_sk = i_item_sk
+ and cs_sold_date_sk = d_date_sk
+ and d_year = 2000
+ and d_moy = 1
+ and cs_bill_addr_sk = ca_address_sk
+ and ca_gmt_offset = -8
+ 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 ('orchid', 'chiffon', 'lace')
+ )
+ and ws_item_sk = i_item_sk
+ and ws_sold_date_sk = d_date_sk
+ and d_year = 2000
+ and d_moy = 1
+ and ws_bill_addr_sk = ca_address_sk
+ and ca_gmt_offset = -8
+ 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,
+ i_item_id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q57.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q57.sql
new file mode 100644
index 000000000..ef4485d69
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q57.sql
@@ -0,0 +1,105 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q57 --
+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.cc_name,
+ 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.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,
+ nsum
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q58.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q58.sql
new file mode 100644
index 000000000..061456a75
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q58.sql
@@ -0,0 +1,137 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q58 --
+with ss_items as (
+ select
+ i_item_id item_id,
+ sum(ss_ext_sales_price) ss_item_rev
+ from
+ store_sales,
+ item,
+ date_dim
+ where
+ ss_item_sk = i_item_sk
+ and d_date in (
+ select
+ d_date
+ from
+ date_dim
+ where
+ d_week_seq = (
+ select
+ d_week_seq
+ from
+ date_dim
+ where
+ d_date = '1998-02-19'
+ )
+ )
+ and ss_sold_date_sk = d_date_sk
+ group by
+ i_item_id
+),
+cs_items as (
+ select
+ i_item_id item_id,
+ sum(cs_ext_sales_price) cs_item_rev
+ from
+ catalog_sales,
+ item,
+ date_dim
+ where
+ cs_item_sk = i_item_sk
+ and d_date in (
+ select
+ d_date
+ from
+ date_dim
+ where
+ d_week_seq = (
+ select
+ d_week_seq
+ from
+ date_dim
+ where
+ d_date = '1998-02-19'
+ )
+ )
+ and cs_sold_date_sk = d_date_sk
+ group by
+ i_item_id
+),
+ws_items as (
+ select
+ i_item_id item_id,
+ sum(ws_ext_sales_price) ws_item_rev
+ from
+ web_sales,
+ item,
+ date_dim
+ where
+ ws_item_sk = i_item_sk
+ and d_date in (
+ select
+ d_date
+ from
+ date_dim
+ where
+ d_week_seq = (
+ select
+ d_week_seq
+ from
+ date_dim
+ where
+ d_date = '1998-02-19'
+ )
+ )
+ and ws_sold_date_sk = d_date_sk
+ group by
+ i_item_id
+)
+select
+ ss_items.item_id,
+ ss_item_rev,
+ ss_item_rev / ((ss_item_rev + cs_item_rev + ws_item_rev) / 3) * 100 ss_dev,
+ cs_item_rev,
+ cs_item_rev / ((ss_item_rev + cs_item_rev + ws_item_rev) / 3) * 100 cs_dev,
+ ws_item_rev,
+ ws_item_rev / ((ss_item_rev + cs_item_rev + ws_item_rev) / 3) * 100 ws_dev,
+ (ss_item_rev + cs_item_rev + ws_item_rev) / 3 average
+from
+ ss_items,
+ cs_items,
+ ws_items
+where
+ ss_items.item_id = cs_items.item_id
+ and ss_items.item_id = ws_items.item_id
+ and ss_item_rev between 0.9 * cs_item_rev
+ and 1.1 * cs_item_rev
+ and ss_item_rev between 0.9 * ws_item_rev
+ and 1.1 * ws_item_rev
+ and cs_item_rev between 0.9 * ss_item_rev
+ and 1.1 * ss_item_rev
+ and cs_item_rev between 0.9 * ws_item_rev
+ and 1.1 * ws_item_rev
+ and ws_item_rev between 0.9 * ss_item_rev
+ and 1.1 * ss_item_rev
+ and ws_item_rev between 0.9 * cs_item_rev
+ and 1.1 * cs_item_rev
+order by
+ item_id,
+ ss_item_rev
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q59.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q59.sql
new file mode 100644
index 000000000..ed8a66646
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q59.sql
@@ -0,0 +1,137 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q59 --
+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 1185
+ and 1185 + 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 1185 + 12
+ and 1185 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q6.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q6.sql
new file mode 100644
index 000000000..3e638f514
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q6.sql
@@ -0,0 +1,57 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q6 --
+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 = 2000
+ and d_moy = 2
+ )
+ 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,
+ a.ca_state
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q60.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q60.sql
new file mode 100644
index 000000000..4049e5642
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q60.sql
@@ -0,0 +1,127 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q60 --
+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 ('Children')
+ )
+ and ss_item_sk = i_item_sk
+ and ss_sold_date_sk = d_date_sk
+ and d_year = 1999
+ and d_moy = 9
+ 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 ('Children')
+ )
+ and cs_item_sk = i_item_sk
+ and cs_sold_date_sk = d_date_sk
+ and d_year = 1999
+ and d_moy = 9
+ 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 ('Children')
+ )
+ and ws_item_sk = i_item_sk
+ and ws_sold_date_sk = d_date_sk
+ and d_year = 1999
+ and d_moy = 9
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q61.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q61.sql
new file mode 100644
index 000000000..532f38767
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q61.sql
@@ -0,0 +1,78 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q61 --
+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 = 1999
+ and d_moy = 11
+ ) 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 = 1999
+ and d_moy = 11
+ ) all_sales
+order by
+ promotions,
+ total
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q62.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q62.sql
new file mode 100644
index 000000000..8e56cd145
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q62.sql
@@ -0,0 +1,77 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q62 --
+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 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q63.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q63.sql
new file mode 100644
index 000000000..31236d7af
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q63.sql
@@ -0,0 +1,90 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q63 --
+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 (
+ 1212,
+ 1212 + 1,
+ 1212 + 2,
+ 1212 + 3,
+ 1212 + 4,
+ 1212 + 5,
+ 1212 + 6,
+ 1212 + 7,
+ 1212 + 8,
+ 1212 + 9,
+ 1212 + 10,
+ 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q64.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q64.sql
new file mode 100644
index 000000000..8ac58c486
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q64.sql
@@ -0,0 +1,164 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q64 --
+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_street_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 (
+ 'maroon',
+ 'burnished',
+ 'dim',
+ 'steel',
+ 'navajo',
+ 'chocolate'
+ )
+ and i_current_price between 35
+ and 35 + 10
+ and i_current_price between 35 + 1
+ and 35 + 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_street_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 as s11,
+ cs1.s2 as s21,
+ cs1.s3 as s31,
+ cs2.s1 as s12,
+ cs2.s2 as s22,
+ cs2.s3 as s32,
+ cs2.syear,
+ cs2.cnt
+from
+ cross_sales cs1,
+ cross_sales cs2
+where
+ cs1.item_sk = cs2.item_sk
+ and cs1.syear = 2000
+ and cs2.syear = 2000 + 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,
+ cs1.s1,
+ cs2.s1;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q65.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q65.sql
new file mode 100644
index 000000000..7efb6fee6
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q65.sql
@@ -0,0 +1,77 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q65 --
+select
+ s_store_name,
+ i_item_desc,
+ sc.revenue,
+ i_current_price,
+ i_wholesale_cost,
+ i_brand
+from
+ store,
+ item,
+ (
+ select
+ ss_store_sk,
+ avg(revenue) as ave
+ from
+ (
+ select
+ ss_store_sk,
+ ss_item_sk,
+ sum(ss_sales_price) as revenue
+ from
+ store_sales,
+ date_dim
+ where
+ ss_sold_date_sk = d_date_sk
+ and d_month_seq between 1212
+ and 1212 + 11
+ group by
+ ss_store_sk,
+ ss_item_sk
+ ) sa
+ group by
+ ss_store_sk
+ ) sb,
+ (
+ select
+ ss_store_sk,
+ ss_item_sk,
+ sum(ss_sales_price) as revenue
+ from
+ store_sales,
+ date_dim
+ where
+ ss_sold_date_sk = d_date_sk
+ and d_month_seq between 1212
+ and 1212 + 11
+ group by
+ ss_store_sk,
+ ss_item_sk
+ ) sc
+where
+ sb.ss_store_sk = sc.ss_store_sk
+ and sc.revenue <= 0.1 * sb.ave
+ and s_store_sk = sc.ss_store_sk
+ and i_item_sk = sc.ss_item_sk
+order by
+ s_store_name,
+ i_item_desc
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q66.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q66.sql
new file mode 100644
index 000000000..866d53367
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q66.sql
@@ -0,0 +1,432 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q66 --
+select
+ w_warehouse_name,
+ w_warehouse_sq_ft,
+ w_city,
+ w_county,
+ w_state,
+ w_country,
+ ship_carriers,
+ year,
+ 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,
+ 'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers,
+ d_year as year,
+ sum(
+ case
+ when d_moy = 1 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as jan_sales,
+ sum(
+ case
+ when d_moy = 2 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as feb_sales,
+ sum(
+ case
+ when d_moy = 3 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as mar_sales,
+ sum(
+ case
+ when d_moy = 4 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as apr_sales,
+ sum(
+ case
+ when d_moy = 5 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as may_sales,
+ sum(
+ case
+ when d_moy = 6 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as jun_sales,
+ sum(
+ case
+ when d_moy = 7 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as jul_sales,
+ sum(
+ case
+ when d_moy = 8 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as aug_sales,
+ sum(
+ case
+ when d_moy = 9 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as sep_sales,
+ sum(
+ case
+ when d_moy = 10 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as oct_sales,
+ sum(
+ case
+ when d_moy = 11 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as nov_sales,
+ sum(
+ case
+ when d_moy = 12 then ws_sales_price * ws_quantity
+ else 0
+ end
+ ) as dec_sales,
+ sum(
+ case
+ when d_moy = 1 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as jan_net,
+ sum(
+ case
+ when d_moy = 2 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as feb_net,
+ sum(
+ case
+ when d_moy = 3 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as mar_net,
+ sum(
+ case
+ when d_moy = 4 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as apr_net,
+ sum(
+ case
+ when d_moy = 5 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as may_net,
+ sum(
+ case
+ when d_moy = 6 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as jun_net,
+ sum(
+ case
+ when d_moy = 7 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as jul_net,
+ sum(
+ case
+ when d_moy = 8 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as aug_net,
+ sum(
+ case
+ when d_moy = 9 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as sep_net,
+ sum(
+ case
+ when d_moy = 10 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as oct_net,
+ sum(
+ case
+ when d_moy = 11 then ws_net_paid_inc_tax * ws_quantity
+ else 0
+ end
+ ) as nov_net,
+ sum(
+ case
+ when d_moy = 12 then ws_net_paid_inc_tax * 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 = 2002
+ and t_time between 49530
+ and 49530 + 28800
+ and sm_carrier in ('DIAMOND', 'AIRBORNE')
+ 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,
+ 'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers,
+ d_year as year,
+ 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_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as jan_net,
+ sum(
+ case
+ when d_moy = 2 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as feb_net,
+ sum(
+ case
+ when d_moy = 3 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as mar_net,
+ sum(
+ case
+ when d_moy = 4 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as apr_net,
+ sum(
+ case
+ when d_moy = 5 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as may_net,
+ sum(
+ case
+ when d_moy = 6 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as jun_net,
+ sum(
+ case
+ when d_moy = 7 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as jul_net,
+ sum(
+ case
+ when d_moy = 8 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as aug_net,
+ sum(
+ case
+ when d_moy = 9 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as sep_net,
+ sum(
+ case
+ when d_moy = 10 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as oct_net,
+ sum(
+ case
+ when d_moy = 11 then cs_net_paid_inc_ship_tax * cs_quantity
+ else 0
+ end
+ ) as nov_net,
+ sum(
+ case
+ when d_moy = 12 then cs_net_paid_inc_ship_tax * 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 = 2002
+ and t_time between 49530
+ AND 49530 + 28800
+ and sm_carrier in ('DIAMOND', 'AIRBORNE')
+ 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,
+ year
+order by
+ w_warehouse_name
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q67.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q67.sql
new file mode 100644
index 000000000..f07b1c09a
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q67.sql
@@ -0,0 +1,87 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q67 --
+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 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q68.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q68.sql
new file mode 100644
index 000000000..d2565591d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q68.sql
@@ -0,0 +1,71 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q68 --
+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 = 5
+ or household_demographics.hd_vehicle_count = 3
+ )
+ and date_dim.d_year in (1999, 1999 + 1, 1999 + 2)
+ and store.s_city in ('Midway', '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,
+ ss_ticket_number
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q69.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q69.sql
new file mode 100644
index 000000000..b76fad33e
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q69.sql
@@ -0,0 +1,89 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q69 --
+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 ('CO', 'IL', 'MN')
+ 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 = 1999
+ and d_moy between 1
+ and 1 + 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 = 1999
+ and d_moy between 1
+ and 1 + 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 = 1999
+ and d_moy between 1
+ and 1 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q7.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q7.sql
new file mode 100644
index 000000000..a779acc10
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q7.sql
@@ -0,0 +1,48 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q7 --
+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 = 'Primary'
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q70.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q70.sql
new file mode 100644
index 000000000..9156149e3
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q70.sql
@@ -0,0 +1,76 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q70 --
+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 1212
+ and 1212 + 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 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q71.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q71.sql
new file mode 100644
index 000000000..77ffa9e86
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q71.sql
@@ -0,0 +1,84 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q71 --
+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 = 12
+ and d_year = 2000
+ 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 = 12
+ and d_year = 2000
+ 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 = 12
+ and d_year = 2000
+ ) 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q72.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q72.sql
new file mode 100644
index 000000000..3e80e0ee3
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q72.sql
@@ -0,0 +1,67 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q72 --
+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 + 5
+ and hd_buy_potential = '1001-5000'
+ and d1.d_year = 2001
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q73.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q73.sql
new file mode 100644
index 000000000..ad211e34d
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q73.sql
@@ -0,0 +1,69 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q73 --
+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 = '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
+ and date_dim.d_year in (1998, 1998 + 1, 1998 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q74.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q74.sql
new file mode 100644
index 000000000..b9835e6aa
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q74.sql
@@ -0,0 +1,97 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q74 --
+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 year,
+ max(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 (2001, 2001 + 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 year,
+ max(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 (2001, 2001 + 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.year = 2001
+ and t_s_secyear.year = 2001 + 1
+ and t_w_firstyear.year = 2001
+ and t_w_secyear.year = 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 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
+ 2,
+ 1,
+ 3
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q75.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q75.sql
new file mode 100644
index 000000000..ddb437727
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q75.sql
@@ -0,0 +1,119 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q75 --
+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 = 'Sports'
+ 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 = 'Sports'
+ 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 = 'Sports'
+ ) 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 year,
+ 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,
+ sales_amt_diff
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q76.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q76.sql
new file mode 100644
index 000000000..ee7a505be
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q76.sql
@@ -0,0 +1,50 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q76 --
+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_addr_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price
+ FROM store_sales,
+ item,
+ date_dim
+ WHERE ss_addr_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_web_page_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price
+ FROM web_sales,
+ item,
+ date_dim
+ WHERE ws_web_page_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;
+
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q77.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q77.sql
new file mode 100644
index 000000000..a63bf8aa6
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q77.sql
@@ -0,0 +1,162 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q77 --
+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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ and ss_store_sk = s_store_sk
+ group by
+ s_store_sk
+),
+sr as (
+ select
+ s_store_sk,
+ sum(sr_return_amt) as returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ group by
+ cs_call_center_sk
+),
+cr as (
+ select
+ cr_call_center_sk,
+ sum(cr_return_amount) as returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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 returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ and wr_web_page_sk = wp_web_page_sk
+ group by
+ wp_web_page_sk
+)
+select
+ channel,
+ id,
+ sum(sales) as sales,
+ sum(returns) as returns,
+ sum(profit) as profit
+from
+ (
+ select
+ 'store channel' as channel,
+ ss.s_store_sk as id,
+ sales,
+ coalesce(returns, 0) as returns,
+ (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,
+ returns,
+ (profit - profit_loss) as profit
+ from
+ cs,
+ cr
+ union
+ all
+ select
+ 'web channel' as channel,
+ ws.wp_web_page_sk as id,
+ sales,
+ coalesce(returns, 0) returns,
+ (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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q78.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q78.sql
new file mode 100644
index 000000000..7173f019a
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q78.sql
@@ -0,0 +1,122 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q78 --
+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_sold_year,
+ ss_item_sk,
+ ss_customer_sk,
+ round(
+ ss_qty / (coalesce(ws_qty, 0) + coalesce(cs_qty, 0)),
+ 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 = ss_item_sk
+ and cs_customer_sk = ss_customer_sk
+ )
+where
+ (
+ coalesce(ws_qty, 0) > 0
+ or coalesce(cs_qty, 0) > 0
+ )
+ and ss_sold_year = 2000
+order by
+ ss_sold_year,
+ ss_item_sk,
+ ss_customer_sk,
+ ss_qty desc,
+ ss_wc desc,
+ ss_sp desc,
+ other_chan_qty,
+ other_chan_wholesale_cost,
+ other_chan_sales_price,
+ ratio
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q79.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q79.sql
new file mode 100644
index 000000000..9cb4b618e
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q79.sql
@@ -0,0 +1,65 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q79 --
+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 > 0
+ )
+ and date_dim.d_dow = 1
+ and date_dim.d_year in (1998, 1998 + 1, 1998 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q8.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q8.sql
new file mode 100644
index 000000000..466c27c60
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q8.sql
@@ -0,0 +1,469 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q8 --
+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 (
+ '89436',
+ '30868',
+ '65085',
+ '22977',
+ '83927',
+ '77557',
+ '58429',
+ '40697',
+ '80614',
+ '10502',
+ '32779',
+ '91137',
+ '61265',
+ '98294',
+ '17921',
+ '18427',
+ '21203',
+ '59362',
+ '87291',
+ '84093',
+ '21505',
+ '17184',
+ '10866',
+ '67898',
+ '25797',
+ '28055',
+ '18377',
+ '80332',
+ '74535',
+ '21757',
+ '29742',
+ '90885',
+ '29898',
+ '17819',
+ '40811',
+ '25990',
+ '47513',
+ '89531',
+ '91068',
+ '10391',
+ '18846',
+ '99223',
+ '82637',
+ '41368',
+ '83658',
+ '86199',
+ '81625',
+ '26696',
+ '89338',
+ '88425',
+ '32200',
+ '81427',
+ '19053',
+ '77471',
+ '36610',
+ '99823',
+ '43276',
+ '41249',
+ '48584',
+ '83550',
+ '82276',
+ '18842',
+ '78890',
+ '14090',
+ '38123',
+ '40936',
+ '34425',
+ '19850',
+ '43286',
+ '80072',
+ '79188',
+ '54191',
+ '11395',
+ '50497',
+ '84861',
+ '90733',
+ '21068',
+ '57666',
+ '37119',
+ '25004',
+ '57835',
+ '70067',
+ '62878',
+ '95806',
+ '19303',
+ '18840',
+ '19124',
+ '29785',
+ '16737',
+ '16022',
+ '49613',
+ '89977',
+ '68310',
+ '60069',
+ '98360',
+ '48649',
+ '39050',
+ '41793',
+ '25002',
+ '27413',
+ '39736',
+ '47208',
+ '16515',
+ '94808',
+ '57648',
+ '15009',
+ '80015',
+ '42961',
+ '63982',
+ '21744',
+ '71853',
+ '81087',
+ '67468',
+ '34175',
+ '64008',
+ '20261',
+ '11201',
+ '51799',
+ '48043',
+ '45645',
+ '61163',
+ '48375',
+ '36447',
+ '57042',
+ '21218',
+ '41100',
+ '89951',
+ '22745',
+ '35851',
+ '83326',
+ '61125',
+ '78298',
+ '80752',
+ '49858',
+ '52940',
+ '96976',
+ '63792',
+ '11376',
+ '53582',
+ '18717',
+ '90226',
+ '50530',
+ '94203',
+ '99447',
+ '27670',
+ '96577',
+ '57856',
+ '56372',
+ '16165',
+ '23427',
+ '54561',
+ '28806',
+ '44439',
+ '22926',
+ '30123',
+ '61451',
+ '92397',
+ '56979',
+ '92309',
+ '70873',
+ '13355',
+ '21801',
+ '46346',
+ '37562',
+ '56458',
+ '28286',
+ '47306',
+ '99555',
+ '69399',
+ '26234',
+ '47546',
+ '49661',
+ '88601',
+ '35943',
+ '39936',
+ '25632',
+ '24611',
+ '44166',
+ '56648',
+ '30379',
+ '59785',
+ '11110',
+ '14329',
+ '93815',
+ '52226',
+ '71381',
+ '13842',
+ '25612',
+ '63294',
+ '14664',
+ '21077',
+ '82626',
+ '18799',
+ '60915',
+ '81020',
+ '56447',
+ '76619',
+ '11433',
+ '13414',
+ '42548',
+ '92713',
+ '70467',
+ '30884',
+ '47484',
+ '16072',
+ '38936',
+ '13036',
+ '88376',
+ '45539',
+ '35901',
+ '19506',
+ '65690',
+ '73957',
+ '71850',
+ '49231',
+ '14276',
+ '20005',
+ '18384',
+ '76615',
+ '11635',
+ '38177',
+ '55607',
+ '41369',
+ '95447',
+ '58581',
+ '58149',
+ '91946',
+ '33790',
+ '76232',
+ '75692',
+ '95464',
+ '22246',
+ '51061',
+ '56692',
+ '53121',
+ '77209',
+ '15482',
+ '10688',
+ '14868',
+ '45907',
+ '73520',
+ '72666',
+ '25734',
+ '17959',
+ '24677',
+ '66446',
+ '94627',
+ '53535',
+ '15560',
+ '41967',
+ '69297',
+ '11929',
+ '59403',
+ '33283',
+ '52232',
+ '57350',
+ '43933',
+ '40921',
+ '36635',
+ '10827',
+ '71286',
+ '19736',
+ '80619',
+ '25251',
+ '95042',
+ '15526',
+ '36496',
+ '55854',
+ '49124',
+ '81980',
+ '35375',
+ '49157',
+ '63512',
+ '28944',
+ '14946',
+ '36503',
+ '54010',
+ '18767',
+ '23969',
+ '43905',
+ '66979',
+ '33113',
+ '21286',
+ '58471',
+ '59080',
+ '13395',
+ '79144',
+ '70373',
+ '67031',
+ '38360',
+ '26705',
+ '50906',
+ '52406',
+ '26066',
+ '73146',
+ '15884',
+ '31897',
+ '30045',
+ '61068',
+ '45550',
+ '92454',
+ '13376',
+ '14354',
+ '19770',
+ '22928',
+ '97790',
+ '50723',
+ '46081',
+ '30202',
+ '14410',
+ '20223',
+ '88500',
+ '67298',
+ '13261',
+ '14172',
+ '81410',
+ '93578',
+ '83583',
+ '46047',
+ '94167',
+ '82564',
+ '21156',
+ '15799',
+ '86709',
+ '37931',
+ '74703',
+ '83103',
+ '23054',
+ '70470',
+ '72008',
+ '49247',
+ '91911',
+ '69998',
+ '20961',
+ '70070',
+ '63197',
+ '54853',
+ '88191',
+ '91830',
+ '49521',
+ '19454',
+ '81450',
+ '89091',
+ '62378',
+ '25683',
+ '61869',
+ '51744',
+ '36580',
+ '85778',
+ '36871',
+ '48121',
+ '28810',
+ '83712',
+ '45486',
+ '67393',
+ '26935',
+ '42393',
+ '20132',
+ '55349',
+ '86057',
+ '21309',
+ '80218',
+ '10094',
+ '11357',
+ '48819',
+ '39734',
+ '40758',
+ '30432',
+ '21204',
+ '29467',
+ '30214',
+ '61024',
+ '55307',
+ '74621',
+ '11622',
+ '68908',
+ '33032',
+ '52868',
+ '99194',
+ '99900',
+ '84936',
+ '69036',
+ '99149',
+ '45013',
+ '32895',
+ '59004',
+ '32322',
+ '14933',
+ '32936',
+ '33562',
+ '72550',
+ '27385',
+ '58049',
+ '58200',
+ '16808',
+ '21360',
+ '32961',
+ '18586',
+ '79307',
+ '15492'
+ )
+ 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 = 1
+ and d_year = 2002
+ and (substr(s_zip, 1, 2) = substr(V1.ca_zip, 1, 2))
+group by
+ s_store_name
+order by
+ s_store_name
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q80.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q80.sql
new file mode 100644
index 000000000..240d4c6cf
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q80.sql
@@ -0,0 +1,145 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q80 --
+with ssr as (
+ select
+ s_store_id as store_id,
+ sum(ss_ext_sales_price) as sales,
+ sum(coalesce(sr_return_amt, 0)) as returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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 returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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 returns,
+ 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('1998-08-04' as date)
+ and (cast('1998-08-04' as date) + interval 30 days)
+ 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(returns) as returns,
+ sum(profit) as profit
+from
+ (
+ select
+ 'store channel' as channel,
+ 'store' || store_id as id,
+ sales,
+ returns,
+ profit
+ from
+ ssr
+ union
+ all
+ select
+ 'catalog channel' as channel,
+ 'catalog_page' || catalog_page_id as id,
+ sales,
+ returns,
+ profit
+ from
+ csr
+ union
+ all
+ select
+ 'web channel' as channel,
+ 'web_site' || web_site_id as id,
+ sales,
+ returns,
+ profit
+ from
+ wsr
+ ) x
+group by
+ rollup (channel, id)
+order by
+ channel,
+ id
+limit
+ 100;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q81.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q81.sql
new file mode 100644
index 000000000..779ee7ac5
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q81.sql
@@ -0,0 +1,86 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q81 --
+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 = 1998
+ 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 = 'IL'
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q82.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q82.sql
new file mode 100644
index 000000000..46a164ca5
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q82.sql
@@ -0,0 +1,45 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q82 --
+select
+ i_item_id,
+ i_item_desc,
+ i_current_price
+from
+ item,
+ inventory,
+ date_dim,
+ store_sales
+where
+ i_current_price between 30
+ and 30 + 30
+ and inv_item_sk = i_item_sk
+ and d_date_sk = inv_date_sk
+ and d_date between cast('2002-05-30' as date)
+ and (cast('2002-05-30' as date) + interval 60 days)
+ and i_manufact_id in (437, 129, 727, 663)
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q83.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q83.sql
new file mode 100644
index 000000000..5fa67513c
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q83.sql
@@ -0,0 +1,125 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q83 --
+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 ('1998-01-02', '1998-10-15', '1998-11-10')
+ )
+ )
+ 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 ('1998-01-02', '1998-10-15', '1998-11-10')
+ )
+ )
+ 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 ('1998-01-02', '1998-10-15', '1998-11-10')
+ )
+ )
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q84.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q84.sql
new file mode 100644
index 000000000..d0d5a6449
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q84.sql
@@ -0,0 +1,40 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q84 --
+select
+ c_customer_id as customer_id,
+ coalesce(c_last_name, '') || ', ' || coalesce(c_first_name, '') as customername
+from
+ customer,
+ customer_address,
+ customer_demographics,
+ household_demographics,
+ income_band,
+ store_returns
+where
+ ca_city = 'Hopewell'
+ and c_current_addr_sk = ca_address_sk
+ and ib_lower_bound >= 32287
+ and ib_upper_bound <= 32287 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q85.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q85.sql
new file mode 100644
index 000000000..9bac82133
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q85.sql
@@ -0,0 +1,96 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q85 --
+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 = 1998
+ 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 = 'M'
+ and cd1.cd_marital_status = cd2.cd_marital_status
+ and cd1.cd_education_status = '4 yr Degree'
+ 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 = 'Primary'
+ and cd1.cd_education_status = cd2.cd_education_status
+ and ws_sales_price between 50.00
+ and 100.00
+ )
+ or (
+ cd1.cd_marital_status = 'U'
+ 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', 'GA', 'NM')
+ and ws_net_profit between 100
+ and 200
+ )
+ or (
+ ca_country = 'United States'
+ and ca_state in ('MT', 'OR', 'IN')
+ and ws_net_profit between 150
+ and 300
+ )
+ or (
+ ca_country = 'United States'
+ and ca_state in ('WI', 'MO', 'WV')
+ 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q86.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q86.sql
new file mode 100644
index 000000000..dd47ba382
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q86.sql
@@ -0,0 +1,49 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q86 --
+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 1212
+ and 1212 + 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;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q87.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q87.sql
new file mode 100644
index 000000000..3172c3802
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q87.sql
@@ -0,0 +1,69 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q87 --
+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 1212
+ and 1212 + 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 1212
+ and 1212 + 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 1212
+ and 1212 + 11
+ )
+ ) cool_cust;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q88.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q88.sql
new file mode 100644
index 000000000..15cccaf41
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q88.sql
@@ -0,0 +1,260 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q88 --
+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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 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 = 3
+ and household_demographics.hd_vehicle_count <= 3 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 0
+ and household_demographics.hd_vehicle_count <= 0 + 2
+ )
+ or (
+ household_demographics.hd_dep_count = 1
+ and household_demographics.hd_vehicle_count <= 1 + 2
+ )
+ )
+ and store.s_store_name = 'ese'
+ ) s8;
diff --git a/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q89.sql b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q89.sql
new file mode 100644
index 000000000..272123a35
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-connector-tpcds/src/main/resources/tpcds_3.2/q89.sql
@@ -0,0 +1,75 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- q89 --
+select
+ *
+from
+ (
+ select
+ i_category,
+ i_class,
+ i_brand,
... 971 lines suppressed ...