Skip to content
Snippets Groups Projects
Commit a78d6ce3 authored by Sameer Agarwal's avatar Sameer Agarwal Committed by Davies Liu
Browse files

[SPARK-15078] [SQL] Add all TPCDS 1.4 benchmark queries for SparkSQL

## What changes were proposed in this pull request?

Now that SparkSQL supports all TPC-DS queries, this patch adds all 99 benchmark queries inside SparkSQL.

## How was this patch tested?

Benchmark only

Author: Sameer Agarwal <sameer@databricks.com>

Closes #13188 from sameeragarwal/tpcds-all.
parent dcac8e6f
No related branches found
No related tags found
No related merge requests found
Showing
with 863 additions and 0 deletions
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
round(ss_qty / (coalesce(ws_qty + cs_qty, 1)), 2) ratio,
ss_qty store_qty,
ss_wc store_wholesale_cost,
ss_sp store_sales_price,
coalesce(ws_qty, 0) + coalesce(cs_qty, 0) other_chan_qty,
coalesce(ws_wc, 0) + coalesce(cs_wc, 0) other_chan_wholesale_cost,
coalesce(ws_sp, 0) + coalesce(cs_sp, 0) other_chan_sales_price
FROM ss
LEFT JOIN ws
ON (ws_sold_year = ss_sold_year AND ws_item_sk = ss_item_sk AND ws_customer_sk = ss_customer_sk)
LEFT JOIN cs
ON (cs_sold_year = ss_sold_year AND cs_item_sk = ss_item_sk AND cs_customer_sk = ss_customer_sk)
WHERE coalesce(ws_qty, 0) > 0 AND coalesce(cs_qty, 0) > 0 AND ss_sold_year = 2000
ORDER BY
ratio,
ss_qty DESC, ss_wc DESC, ss_sp DESC,
other_chan_qty,
other_chan_wholesale_cost,
other_chan_sales_price,
round(ss_qty / (coalesce(ws_qty + cs_qty, 1)), 2)
LIMIT 100
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 = 6 OR
household_demographics.hd_vehicle_count > 2)
AND date_dim.d_dow = 1
AND date_dim.d_year IN (1999, 1999 + 1, 1999 + 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
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 (
'24128','76232','65084','87816','83926','77556','20548',
'26231','43848','15126','91137','61265','98294','25782',
'17920','18426','98235','40081','84093','28577','55565',
'17183','54601','67897','22752','86284','18376','38607',
'45200','21756','29741','96765','23932','89360','29839',
'25989','28898','91068','72550','10390','18845','47770',
'82636','41367','76638','86198','81312','37126','39192',
'88424','72175','81426','53672','10445','42666','66864',
'66708','41248','48583','82276','18842','78890','49448',
'14089','38122','34425','79077','19849','43285','39861',
'66162','77610','13695','99543','83444','83041','12305',
'57665','68341','25003','57834','62878','49130','81096',
'18840','27700','23470','50412','21195','16021','76107',
'71954','68309','18119','98359','64544','10336','86379',
'27068','39736','98569','28915','24206','56529','57647',
'54917','42961','91110','63981','14922','36420','23006',
'67467','32754','30903','20260','31671','51798','72325',
'85816','68621','13955','36446','41766','68806','16725',
'15146','22744','35850','88086','51649','18270','52867',
'39972','96976','63792','11376','94898','13595','10516',
'90225','58943','39371','94945','28587','96576','57855',
'28488','26105','83933','25858','34322','44438','73171',
'30122','34102','22685','71256','78451','54364','13354',
'45375','40558','56458','28286','45266','47305','69399',
'83921','26233','11101','15371','69913','35942','15882',
'25631','24610','44165','99076','33786','70738','26653',
'14328','72305','62496','22152','10144','64147','48425',
'14663','21076','18799','30450','63089','81019','68893',
'24996','51200','51211','45692','92712','70466','79994',
'22437','25280','38935','71791','73134','56571','14060',
'19505','72425','56575','74351','68786','51650','20004',
'18383','76614','11634','18906','15765','41368','73241',
'76698','78567','97189','28545','76231','75691','22246',
'51061','90578','56691','68014','51103','94167','57047',
'14867','73520','15734','63435','25733','35474','24676',
'94627','53535','17879','15559','53268','59166','11928',
'59402','33282','45721','43933','68101','33515','36634',
'71286','19736','58058','55253','67473','41918','19515',
'36495','19430','22351','77191','91393','49156','50298',
'87501','18652','53179','18767','63193','23968','65164',
'68880','21286','72823','58470','67301','13394','31016',
'70372','67030','40604','24317','45748','39127','26065',
'77721','31029','31880','60576','24671','45549','13376',
'50016','33123','19769','22927','97789','46081','72151',
'15723','46136','51949','68100','96888','64528','14171',
'79777','28709','11489','25103','32213','78668','22245',
'15798','27156','37930','62971','21337','51622','67853',
'10567','38415','15455','58263','42029','60279','37125',
'56240','88190','50308','26859','64457','89091','82136',
'62377','36233','63837','58078','17043','30010','60099',
'28810','98025','29178','87343','73273','30469','64034',
'39516','86057','21309','90257','67875','40162','11356',
'73650','61810','72013','30431','22461','19512','13375',
'55307','30625','83849','68908','26689','96451','38193',
'46820','88885','84935','69035','83144','47537','56616',
'94983','48033','69952','25486','61547','27385','61860',
'58048','56910','16807','17871','35258','31387','35458',
'35576'))
INTERSECT
(SELECT ca_zip
FROM
(SELECT
substr(ca_zip, 1, 5) ca_zip,
count(*) cnt
FROM customer_address, customer
WHERE ca_address_sk = c_current_addr_sk AND
c_preferred_cust_flag = 'Y'
GROUP BY ca_zip
HAVING count(*) > 10) A1)
) A2
) V1
WHERE ss_store_sk = s_store_sk
AND ss_sold_date_sk = d_date_sk
AND d_qoy = 2 AND d_year = 1998
AND (substr(s_zip, 1, 2) = substr(V1.ca_zip, 1, 2))
GROUP BY s_store_name
ORDER BY s_store_name
LIMIT 100
WITH 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('2000-08-23' AS DATE)
AND (cast('2000-08-23' 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('2000-08-23' AS DATE)
AND (cast('2000-08-23' 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('2000-08-23' AS DATE)
AND (cast('2000-08-23' 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,
concat('store', store_id) AS id,
sales,
returns,
profit
FROM ssr
UNION ALL
SELECT
'catalog channel' AS channel,
concat('catalog_page', catalog_page_id) AS id,
sales,
returns,
profit
FROM csr
UNION ALL
SELECT
'web channel' AS channel,
concat('web_site', web_site_id) AS id,
sales,
returns,
profit
FROM wsr) x
GROUP BY ROLLUP (channel, id)
ORDER BY channel, id
LIMIT 100
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 = 2000
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 = 'GA'
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
SELECT
i_item_id,
i_item_desc,
i_current_price
FROM item, inventory, date_dim, store_sales
WHERE i_current_price BETWEEN 62 AND 62 + 30
AND inv_item_sk = i_item_sk
AND d_date_sk = inv_date_sk
AND d_date BETWEEN cast('2000-05-25' AS DATE) AND (cast('2000-05-25' AS DATE) + INTERVAL 60 days)
AND i_manufact_id IN (129, 270, 821, 423)
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
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 ('2000-06-30', '2000-09-27', '2000-11-17')))
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 ('2000-06-30', '2000-09-27', '2000-11-17')))
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 ('2000-06-30', '2000-09-27', '2000-11-17')))
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
SELECT
c_customer_id AS customer_id,
concat(c_last_name, ', ', c_first_name) AS customername
FROM customer
, customer_address
, customer_demographics
, household_demographics
, income_band
, store_returns
WHERE ca_city = 'Edgewood'
AND c_current_addr_sk = ca_address_sk
AND ib_lower_bound >= 38128
AND ib_upper_bound <= 38128 + 50000
AND ib_income_band_sk = hd_income_band_sk
AND cd_demo_sk = c_current_cdemo_sk
AND hd_demo_sk = c_current_hdemo_sk
AND sr_cdemo_sk = cd_demo_sk
ORDER BY c_customer_id
LIMIT 100
SELECT
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 = 2000
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 = 'Advanced 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 = 'S'
AND
cd1.cd_marital_status = cd2.cd_marital_status
AND
cd1.cd_education_status = 'College'
AND
cd1.cd_education_status = cd2.cd_education_status
AND
ws_sales_price BETWEEN 50.00 AND 100.00
)
OR
(
cd1.cd_marital_status = 'W'
AND
cd1.cd_marital_status = cd2.cd_marital_status
AND
cd1.cd_education_status = '2 yr 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 ('IN', 'OH', 'NJ')
AND ws_net_profit BETWEEN 100 AND 200
)
OR
(
ca_country = 'United States'
AND
ca_state IN ('WI', 'CT', 'KY')
AND ws_net_profit BETWEEN 150 AND 300
)
OR
(
ca_country = 'United States'
AND
ca_state IN ('LA', 'IA', 'AR')
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
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 1200 AND 1200 + 11
AND d1.d_date_sk = ws_sold_date_sk
AND i_item_sk = ws_item_sk
GROUP BY ROLLUP (i_category, i_class)
ORDER BY
lochierarchy DESC,
CASE WHEN lochierarchy = 0
THEN i_category END,
rank_within_parent
LIMIT 100
SELECT 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 1200 AND 1200 + 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 1200 AND 1200 + 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 1200 AND 1200 + 11)
) cool_cust
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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 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 = 4 AND household_demographics.hd_vehicle_count <= 4 + 2)
OR
(household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 2 + 2)
OR
(household_demographics.hd_dep_count = 0 AND
household_demographics.hd_vehicle_count <= 0 + 2))
AND store.s_store_name = 'ese') s8
SELECT *
FROM (
SELECT
i_category,
i_class,
i_brand,
s_store_name,
s_company_name,
d_moy,
sum(ss_sales_price) sum_sales,
avg(sum(ss_sales_price))
OVER
(PARTITION BY i_category, i_brand, s_store_name, s_company_name)
avg_monthly_sales
FROM item, store_sales, date_dim, store
WHERE ss_item_sk = i_item_sk AND
ss_sold_date_sk = d_date_sk AND
ss_store_sk = s_store_sk AND
d_year IN (1999) AND
((i_category IN ('Books', 'Electronics', 'Sports') AND
i_class IN ('computers', 'stereo', 'football'))
OR (i_category IN ('Men', 'Jewelry', 'Women') AND
i_class IN ('shirts', 'birdal', 'dresses')))
GROUP BY i_category, i_class, i_brand,
s_store_name, s_company_name, d_moy) tmp1
WHERE CASE WHEN (avg_monthly_sales <> 0)
THEN (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales)
ELSE NULL END > 0.1
ORDER BY sum_sales - avg_monthly_sales, s_store_name
LIMIT 100
SELECT
CASE WHEN (SELECT count(*)
FROM store_sales
WHERE ss_quantity BETWEEN 1 AND 20) > 62316685
THEN (SELECT avg(ss_ext_discount_amt)
FROM store_sales
WHERE ss_quantity BETWEEN 1 AND 20)
ELSE (SELECT avg(ss_net_paid)
FROM store_sales
WHERE ss_quantity BETWEEN 1 AND 20) END bucket1,
CASE WHEN (SELECT count(*)
FROM store_sales
WHERE ss_quantity BETWEEN 21 AND 40) > 19045798
THEN (SELECT avg(ss_ext_discount_amt)
FROM store_sales
WHERE ss_quantity BETWEEN 21 AND 40)
ELSE (SELECT avg(ss_net_paid)
FROM store_sales
WHERE ss_quantity BETWEEN 21 AND 40) END bucket2,
CASE WHEN (SELECT count(*)
FROM store_sales
WHERE ss_quantity BETWEEN 41 AND 60) > 365541424
THEN (SELECT avg(ss_ext_discount_amt)
FROM store_sales
WHERE ss_quantity BETWEEN 41 AND 60)
ELSE (SELECT avg(ss_net_paid)
FROM store_sales
WHERE ss_quantity BETWEEN 41 AND 60) END bucket3,
CASE WHEN (SELECT count(*)
FROM store_sales
WHERE ss_quantity BETWEEN 61 AND 80) > 216357808
THEN (SELECT avg(ss_ext_discount_amt)
FROM store_sales
WHERE ss_quantity BETWEEN 61 AND 80)
ELSE (SELECT avg(ss_net_paid)
FROM store_sales
WHERE ss_quantity BETWEEN 61 AND 80) END bucket4,
CASE WHEN (SELECT count(*)
FROM store_sales
WHERE ss_quantity BETWEEN 81 AND 100) > 184483884
THEN (SELECT avg(ss_ext_discount_amt)
FROM store_sales
WHERE ss_quantity BETWEEN 81 AND 100)
ELSE (SELECT avg(ss_net_paid)
FROM store_sales
WHERE ss_quantity BETWEEN 81 AND 100) END bucket5
FROM reason
WHERE r_reason_sk = 1
SELECT cast(amc AS DECIMAL(15, 4)) / cast(pmc AS DECIMAL(15, 4)) am_pm_ratio
FROM (SELECT count(*) amc
FROM web_sales, household_demographics, time_dim, web_page
WHERE ws_sold_time_sk = time_dim.t_time_sk
AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk
AND ws_web_page_sk = web_page.wp_web_page_sk
AND time_dim.t_hour BETWEEN 8 AND 8 + 1
AND household_demographics.hd_dep_count = 6
AND web_page.wp_char_count BETWEEN 5000 AND 5200) at,
(SELECT count(*) pmc
FROM web_sales, household_demographics, time_dim, web_page
WHERE ws_sold_time_sk = time_dim.t_time_sk
AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk
AND ws_web_page_sk = web_page.wp_web_page_sk
AND time_dim.t_hour BETWEEN 19 AND 19 + 1
AND household_demographics.hd_dep_count = 6
AND web_page.wp_char_count BETWEEN 5000 AND 5200) pt
ORDER BY am_pm_ratio
LIMIT 100
SELECT
cc_call_center_id Call_Center,
cc_name Call_Center_Name,
cc_manager Manager,
sum(cr_net_loss) Returns_Loss
FROM
call_center, catalog_returns, date_dim, customer, customer_address,
customer_demographics, household_demographics
WHERE
cr_call_center_sk = cc_call_center_sk
AND cr_returned_date_sk = d_date_sk
AND cr_returning_customer_sk = c_customer_sk
AND cd_demo_sk = c_current_cdemo_sk
AND hd_demo_sk = c_current_hdemo_sk
AND ca_address_sk = c_current_addr_sk
AND d_year = 1998
AND d_moy = 11
AND ((cd_marital_status = 'M' AND cd_education_status = 'Unknown')
OR (cd_marital_status = 'W' AND cd_education_status = 'Advanced Degree'))
AND hd_buy_potential LIKE 'Unknown%'
AND ca_gmt_offset = -7
GROUP BY cc_call_center_id, cc_name, cc_manager, cd_marital_status, cd_education_status
ORDER BY sum(cr_net_loss) DESC
SELECT sum(ws_ext_discount_amt) AS `Excess Discount Amount `
FROM web_sales, item, date_dim
WHERE i_manufact_id = 350
AND i_item_sk = ws_item_sk
AND d_date BETWEEN '2000-01-27' AND (cast('2000-01-27' AS DATE) + INTERVAL 90 days)
AND d_date_sk = ws_sold_date_sk
AND ws_ext_discount_amt >
(
SELECT 1.3 * avg(ws_ext_discount_amt)
FROM web_sales, date_dim
WHERE ws_item_sk = i_item_sk
AND d_date BETWEEN '2000-01-27' AND (cast('2000-01-27' AS DATE) + INTERVAL 90 days)
AND d_date_sk = ws_sold_date_sk
)
ORDER BY sum(ws_ext_discount_amt)
LIMIT 100
SELECT
ss_customer_sk,
sum(act_sales) sumsales
FROM (SELECT
ss_item_sk,
ss_ticket_number,
ss_customer_sk,
CASE WHEN sr_return_quantity IS NOT NULL
THEN (ss_quantity - sr_return_quantity) * ss_sales_price
ELSE (ss_quantity * ss_sales_price) END act_sales
FROM store_sales
LEFT OUTER JOIN store_returns
ON (sr_item_sk = ss_item_sk AND sr_ticket_number = ss_ticket_number)
,
reason
WHERE sr_reason_sk = r_reason_sk AND r_reason_desc = 'reason 28') t
GROUP BY ss_customer_sk
ORDER BY sumsales, ss_customer_sk
LIMIT 100
SELECT
count(DISTINCT ws_order_number) AS `order count `,
sum(ws_ext_ship_cost) AS `total shipping cost `,
sum(ws_net_profit) AS `total net profit `
FROM
web_sales ws1, date_dim, customer_address, web_site
WHERE
d_date BETWEEN '1999-02-01' AND
(CAST('1999-02-01' AS DATE) + INTERVAL 60 days)
AND ws1.ws_ship_date_sk = d_date_sk
AND ws1.ws_ship_addr_sk = ca_address_sk
AND ca_state = 'IL'
AND ws1.ws_web_site_sk = web_site_sk
AND web_company_name = 'pri'
AND EXISTS(SELECT *
FROM web_sales ws2
WHERE ws1.ws_order_number = ws2.ws_order_number
AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk)
AND NOT EXISTS(SELECT *
FROM web_returns wr1
WHERE ws1.ws_order_number = wr1.wr_order_number)
ORDER BY count(DISTINCT ws_order_number)
LIMIT 100
WITH ws_wh AS
(SELECT
ws1.ws_order_number,
ws1.ws_warehouse_sk wh1,
ws2.ws_warehouse_sk wh2
FROM web_sales ws1, web_sales ws2
WHERE ws1.ws_order_number = ws2.ws_order_number
AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk)
SELECT
count(DISTINCT ws_order_number) AS `order count `,
sum(ws_ext_ship_cost) AS `total shipping cost `,
sum(ws_net_profit) AS `total net profit `
FROM
web_sales ws1, date_dim, customer_address, web_site
WHERE
d_date BETWEEN '1999-02-01' AND
(CAST('1999-02-01' AS DATE) + INTERVAL 60 DAY)
AND ws1.ws_ship_date_sk = d_date_sk
AND ws1.ws_ship_addr_sk = ca_address_sk
AND ca_state = 'IL'
AND ws1.ws_web_site_sk = web_site_sk
AND web_company_name = 'pri'
AND ws1.ws_order_number IN (SELECT ws_order_number
FROM ws_wh)
AND ws1.ws_order_number IN (SELECT wr_order_number
FROM web_returns, ws_wh
WHERE wr_order_number = ws_wh.ws_order_number)
ORDER BY count(DISTINCT ws_order_number)
LIMIT 100
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment