diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/BaseJoinReorderingTest.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/BaseJoinReorderingTest.java new file mode 100644 index 0000000000000..499e16ea54dde --- /dev/null +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/BaseJoinReorderingTest.java @@ -0,0 +1,251 @@ +/* + * Licensed 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. + */ + +package com.facebook.presto.sql.planner.optimizations; + +import com.facebook.presto.sql.planner.LogicalPlanner; +import com.facebook.presto.sql.planner.Plan; +import com.facebook.presto.sql.planner.SimplePlanVisitor; +import com.facebook.presto.sql.planner.assertions.BasePlanTest; +import com.facebook.presto.sql.planner.plan.JoinNode; +import com.facebook.presto.sql.planner.plan.SemiJoinNode; +import com.facebook.presto.sql.planner.plan.TableScanNode; +import com.facebook.presto.sql.planner.plan.ValuesNode; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; + +import static com.facebook.presto.sql.planner.plan.JoinNode.DistributionType.REPLICATED; +import static com.facebook.presto.sql.planner.plan.JoinNode.Type.INNER; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static java.lang.String.format; +import static java.util.Objects.requireNonNull; +import static org.testng.Assert.assertEquals; + +public class BaseJoinReorderingTest + extends BasePlanTest +{ + + public BaseJoinReorderingTest(String schema, ImmutableMap sessionProperties) + { + super(schema, sessionProperties); + } + + protected void assertJoinOrder(String sql, Node expected) + { + assertEquals(joinOrderString(sql), expected.print()); + } + + protected String joinOrderString(String sql) + { + Plan plan = plan(sql, LogicalPlanner.Stage.OPTIMIZED_AND_VALIDATED, false); + + JoinOrderPrinter joinOrderPrinter = new JoinOrderPrinter(); + plan.getRoot().accept(joinOrderPrinter, 0); + return joinOrderPrinter.result(); + } + + private static class JoinOrderPrinter + extends SimplePlanVisitor + { + private final StringBuilder stringBuilder = new StringBuilder(); + + public String result() + { + return stringBuilder.toString(); + } + + @Override + public Void visitJoin(JoinNode node, Integer indent) + { + JoinNode.DistributionType distributionType = node.getDistributionType() + .orElseThrow(() -> new IllegalStateException("Expected distribution type to be present")); + if (node.isCrossJoin()) { + checkState(node.getType() == INNER && distributionType == REPLICATED, "Expected CROSS join to be INNER REPLICATED"); + stringBuilder.append(indentString(indent)) + .append("cross join:\n"); + } + else { + stringBuilder.append(indentString(indent)) + .append("join (") + .append(node.getType()) + .append(", ") + .append(distributionType) + .append("):\n"); + } + + return visitPlan(node, indent + 1); + } + + @Override + public Void visitTableScan(TableScanNode node, Integer indent) + { + stringBuilder.append(indentString(indent)) + .append(node.getTable().getConnectorHandle().toString()) + .append("\n"); + return visitPlan(node, indent + 1); + } + + @Override + public Void visitSemiJoin(final SemiJoinNode node, Integer indent) + { + stringBuilder.append(indentString(indent)) + .append("semijoin (") + .append(node.getDistributionType().map(SemiJoinNode.DistributionType::toString).orElse("unknown")) + .append("):\n"); + + return visitPlan(node, indent + 1); + } + + @Override + public Void visitValues(ValuesNode node, Integer indent) + { + stringBuilder.append(indentString(indent)) + .append("values\n"); + + return null; + } + } + + private static String indentString(int indent) + { + return Strings.repeat(" ", indent); + } + + private interface Node + { + void print(StringBuilder stringBuilder, int indent); + + default String print() + { + StringBuilder stringBuilder = new StringBuilder(); + print(stringBuilder, 0); + return stringBuilder.toString(); + } + } + + protected Join crossJoin(Node left, Node right) + { + return new Join(INNER, REPLICATED, true, left, right); + } + + protected static class Join + implements Node + { + private final JoinNode.Type type; + private final JoinNode.DistributionType distributionType; + private final boolean isCrossJoin; + private final Node left; + private final Node right; + + protected Join(JoinNode.Type type, JoinNode.DistributionType distributionType, Node left, Node right) + { + this(type, distributionType, false, left, right); + } + + private Join(JoinNode.Type type, JoinNode.DistributionType distributionType, boolean isCrossJoin, Node left, Node right) + { + if (isCrossJoin) { + checkArgument(distributionType == REPLICATED && type == INNER, "Cross join can only accept INNER REPLICATED join"); + } + this.type = requireNonNull(type, "type is null"); + this.distributionType = requireNonNull(distributionType, "distributionType is null"); + this.isCrossJoin = isCrossJoin; + this.left = requireNonNull(left, "left is null"); + this.right = requireNonNull(right, "right is null"); + } + + @Override + public void print(StringBuilder stringBuilder, int indent) + { + if (isCrossJoin) { + stringBuilder.append(indentString(indent)) + .append("cross join:\n"); + } + else { + stringBuilder.append(indentString(indent)) + .append("join (") + .append(type) + .append(", ") + .append(distributionType) + .append("):\n"); + } + + left.print(stringBuilder, indent + 1); + right.print(stringBuilder, indent + 1); + } + } + + protected static class SemiJoin + implements Node + { + private final JoinNode.DistributionType distributionType; + private final Node left; + private final Node right; + + protected SemiJoin(JoinNode.DistributionType distributionType, final Node left, final Node right) + { + this.distributionType = requireNonNull(distributionType); + this.left = requireNonNull(left); + this.right = requireNonNull(right); + } + + @Override + public void print(StringBuilder stringBuilder, int indent) + { + stringBuilder.append(indentString(indent)) + .append("semijoin (") + .append(distributionType.toString()) + .append("):\n"); + + left.print(stringBuilder, indent + 1); + right.print(stringBuilder, indent + 1); + } + } + + protected TableScan tableScan(String tableName) + { + return new TableScan(format("tpch:%s:%s", tableName, getQueryRunner().getDefaultSession().getSchema().get())); + } + + protected static class TableScan + implements Node + { + private final String tableName; + + private TableScan(String tableName) + { + this.tableName = tableName; + } + + @Override + public void print(StringBuilder stringBuilder, int indent) + { + stringBuilder.append(indentString(indent)) + .append(tableName) + .append("\n"); + } + } + + protected static class Values + implements Node + { + @Override + public void print(StringBuilder stringBuilder, int indent) + { + stringBuilder.append(indentString(indent)) + .append("values\n"); + } + } +} diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestJoinReordering.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestJoinReordering.java index e487be7170db9..0e684fe440884 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestJoinReordering.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestJoinReordering.java @@ -15,18 +15,9 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; -import com.facebook.presto.sql.planner.LogicalPlanner; -import com.facebook.presto.sql.planner.Plan; -import com.facebook.presto.sql.planner.SimplePlanVisitor; -import com.facebook.presto.sql.planner.assertions.BasePlanTest; -import com.facebook.presto.sql.planner.plan.JoinNode; -import com.facebook.presto.sql.planner.plan.SemiJoinNode; -import com.facebook.presto.sql.planner.plan.TableScanNode; -import com.facebook.presto.sql.planner.plan.ValuesNode; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.tpch.ColumnNaming; import com.facebook.presto.tpch.TpchConnectorFactory; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import com.google.common.io.Resources; import io.airlift.tpch.Customer; @@ -46,18 +37,14 @@ import static com.facebook.presto.sql.planner.plan.JoinNode.Type.LEFT; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.RIGHT; import static com.facebook.presto.tpch.TpchConnectorFactory.TPCH_COLUMN_NAMING_PROPERTY; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; -import static java.util.Objects.requireNonNull; -import static org.testng.Assert.assertEquals; /** * This class tests cost-based optimization rules related to joins. It contains unmodified TPCH queries. * This class is using TPCH connector configured in way to mock Hive connector with unpartitioned TPCH tables. */ public class TestJoinReordering - extends BasePlanTest + extends BaseJoinReorderingTest { /* * CAUTION: The expected plans here are not necessarily optimal yet. Their role is to prevent @@ -516,213 +503,6 @@ public void testTpchQ22() new Values())); } - private TableScan tableScan(String tableName) - { - return new TableScan(format("tpch:%s:%s", tableName, getQueryRunner().getDefaultSession().getSchema().get())); - } - - private void assertJoinOrder(String sql, Node expected) - { - assertEquals(joinOrderString(sql), expected.print()); - } - - private String joinOrderString(String sql) - { - Plan plan = plan(sql, LogicalPlanner.Stage.OPTIMIZED_AND_VALIDATED, false); - - JoinOrderPrinter joinOrderPrinter = new JoinOrderPrinter(); - plan.getRoot().accept(joinOrderPrinter, 0); - return joinOrderPrinter.result(); - } - - private static class JoinOrderPrinter - extends SimplePlanVisitor - { - private final StringBuilder stringBuilder = new StringBuilder(); - - public String result() - { - return stringBuilder.toString(); - } - - @Override - public Void visitJoin(JoinNode node, Integer indent) - { - JoinNode.DistributionType distributionType = node.getDistributionType() - .orElseThrow(() -> new IllegalStateException("Expected distribution type to be present")); - if (node.isCrossJoin()) { - checkState(node.getType() == INNER && distributionType == REPLICATED, "Expected CROSS join to be INNER REPLICATED"); - stringBuilder.append(indentString(indent)) - .append("cross join:\n"); - } - else { - stringBuilder.append(indentString(indent)) - .append("join (") - .append(node.getType()) - .append(", ") - .append(distributionType) - .append("):\n"); - } - - return visitPlan(node, indent + 1); - } - - @Override - public Void visitTableScan(TableScanNode node, Integer indent) - { - stringBuilder.append(indentString(indent)) - .append(node.getTable().getConnectorHandle().toString()) - .append("\n"); - return visitPlan(node, indent + 1); - } - - @Override - public Void visitSemiJoin(final SemiJoinNode node, Integer indent) - { - stringBuilder.append(indentString(indent)) - .append("semijoin (") - .append(node.getDistributionType().map(SemiJoinNode.DistributionType::toString).orElse("unknown")) - .append("):\n"); - - return visitPlan(node, indent + 1); - } - - @Override - public Void visitValues(ValuesNode node, Integer indent) - { - stringBuilder.append(indentString(indent)) - .append("values\n"); - - return null; - } - } - - private static String indentString(int indent) - { - return Strings.repeat(" ", indent); - } - - private interface Node - { - void print(StringBuilder stringBuilder, int indent); - - default String print() - { - StringBuilder stringBuilder = new StringBuilder(); - print(stringBuilder, 0); - return stringBuilder.toString(); - } - } - - private Join crossJoin(Node left, Node right) - { - return new Join(INNER, REPLICATED, true, left, right); - } - - private static class Join - implements Node - { - private final JoinNode.Type type; - private final JoinNode.DistributionType distributionType; - private final boolean isCrossJoin; - private final Node left; - private final Node right; - - private Join(JoinNode.Type type, JoinNode.DistributionType distributionType, Node left, Node right) - { - this(type, distributionType, false, left, right); - } - - private Join(JoinNode.Type type, JoinNode.DistributionType distributionType, boolean isCrossJoin, Node left, Node right) - { - if (isCrossJoin) { - checkArgument(distributionType == REPLICATED && type == INNER, "Cross join can only accept INNER REPLICATED join"); - } - this.type = requireNonNull(type, "type is null"); - this.distributionType = requireNonNull(distributionType, "distributionType is null"); - this.isCrossJoin = isCrossJoin; - this.left = requireNonNull(left, "left is null"); - this.right = requireNonNull(right, "right is null"); - } - - @Override - public void print(StringBuilder stringBuilder, int indent) - { - if (isCrossJoin) { - stringBuilder.append(indentString(indent)) - .append("cross join:\n"); - } - else { - stringBuilder.append(indentString(indent)) - .append("join (") - .append(type) - .append(", ") - .append(distributionType) - .append("):\n"); - } - - left.print(stringBuilder, indent + 1); - right.print(stringBuilder, indent + 1); - } - } - - private static class SemiJoin - implements Node - { - private final JoinNode.DistributionType distributionType; - private final Node left; - private final Node right; - - private SemiJoin(JoinNode.DistributionType distributionType, final Node left, final Node right) - { - this.distributionType = requireNonNull(distributionType); - this.left = requireNonNull(left); - this.right = requireNonNull(right); - } - - @Override - public void print(StringBuilder stringBuilder, int indent) - { - stringBuilder.append(indentString(indent)) - .append("semijoin (") - .append(distributionType.toString()) - .append("):\n"); - - left.print(stringBuilder, indent + 1); - right.print(stringBuilder, indent + 1); - } - } - - private static class TableScan - implements Node - { - private final String tableName; - - private TableScan(String tableName) - { - this.tableName = tableName; - } - - @Override - public void print(StringBuilder stringBuilder, int indent) - { - stringBuilder.append(indentString(indent)) - .append(tableName) - .append("\n"); - } - } - - private static class Values - implements Node - { - @Override - public void print(StringBuilder stringBuilder, int indent) - { - stringBuilder.append(indentString(indent)) - .append("values\n"); - } - } - private static String tpchQuery(int queryNumber) { if (queryNumber == 15) { diff --git a/presto-tpcds/pom.xml b/presto-tpcds/pom.xml index 93c03ef3d91d6..b59e050989f93 100644 --- a/presto-tpcds/pom.xml +++ b/presto-tpcds/pom.xml @@ -96,5 +96,17 @@ log-manager test + + + io.airlift + joni + test + + + + io.airlift + bytecode + test + diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java index e2e429c41a025..97c0fd847e066 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java @@ -27,6 +27,7 @@ import com.teradata.tpcds.Table; import io.airlift.slice.Slices; +import java.time.LocalDate; import java.util.Map; import java.util.Optional; @@ -92,6 +93,9 @@ private Object toPrestoValue(Object tpcdsValue, Type type) else if (type instanceof CharType) { return truncateToLengthAndTrimSpaces(Slices.utf8Slice((String) tpcdsValue), type); } + else if (tpcdsValue instanceof String && type.equals(DATE)) { + return LocalDate.parse((CharSequence) tpcdsValue).toEpochDay(); + } else if (type.equals(BIGINT) || type.equals(INTEGER) || type.equals(DATE) || (type instanceof DecimalType && isShortDecimal(type))) { return ((Number) tpcdsValue).longValue(); } diff --git a/presto-tpcds/src/main/resources/tpcds/queries/TODO b/presto-tpcds/src/main/resources/tpcds/queries/TODO new file mode 100644 index 0000000000000..b48e8469055a8 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/TODO @@ -0,0 +1 @@ +Move queries to TPCDS generator library. diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q01.sql b/presto-tpcds/src/main/resources/tpcds/queries/q01.sql new file mode 100644 index 0000000000000..3ae57577c56e7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q01.sql @@ -0,0 +1,30 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + customer_total_return AS ( + SELECT + "sr_customer_sk" "ctr_customer_sk" + , "sr_store_sk" "ctr_store_sk" + , "sum"("sr_return_amt") "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") * DECIMAL '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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q02.sql b/presto-tpcds/src/main/resources/tpcds/queries/q02.sql new file mode 100644 index 0000000000000..c8e066d49a83f --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q02.sql @@ -0,0 +1,81 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q03.sql b/presto-tpcds/src/main/resources/tpcds/queries/q03.sql new file mode 100644 index 0000000000000..39daedbb467d7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q03.sql @@ -0,0 +1,17 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 128) + AND ("dt"."d_moy" = 11) +GROUP BY "dt"."d_year", "item"."i_brand", "item"."i_brand_id" +ORDER BY "dt"."d_year" ASC, "sum_agg" DESC, "brand_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q04.sql b/presto-tpcds/src/main/resources/tpcds/queries/q04.sql new file mode 100644 index 0000000000000..4c61763cfcdf9 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q04.sql @@ -0,0 +1,94 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + year_total AS ( + SELECT + "c_customer_id" "customer_id" + , "c_first_name" "customer_first_name" + , "c_last_name" "customer_last_name" + , "c_preferred_cust_flag" "customer_preferred_cust_flag" + , "c_birth_country" "customer_birth_country" + , "c_login" "customer_login" + , "c_email_address" "customer_email_address" + , "d_year" "dyear" + , "sum"((((("ss_ext_list_price" - "ss_ext_wholesale_cost") - "ss_ext_discount_amt") + "ss_ext_sales_price") / 2)) "year_total" + , 's' "sale_type" + FROM + customer + , store_sales + , date_dim + WHERE ("c_customer_sk" = "ss_customer_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + GROUP BY "c_customer_id", "c_first_name", "c_last_name", "c_preferred_cust_flag", "c_birth_country", "c_login", "c_email_address", "d_year" +UNION ALL SELECT + "c_customer_id" "customer_id" + , "c_first_name" "customer_first_name" + , "c_last_name" "customer_last_name" + , "c_preferred_cust_flag" "customer_preferred_cust_flag" + , "c_birth_country" "customer_birth_country" + , "c_login" "customer_login" + , "c_email_address" "customer_email_address" + , "d_year" "dyear" + , "sum"((((("cs_ext_list_price" - "cs_ext_wholesale_cost") - "cs_ext_discount_amt") + "cs_ext_sales_price") / 2)) "year_total" + , 'c' "sale_type" + FROM + customer + , catalog_sales + , date_dim + WHERE ("c_customer_sk" = "cs_bill_customer_sk") + AND ("cs_sold_date_sk" = "d_date_sk") + GROUP BY "c_customer_id", "c_first_name", "c_last_name", "c_preferred_cust_flag", "c_birth_country", "c_login", "c_email_address", "d_year" +UNION ALL SELECT + "c_customer_id" "customer_id" + , "c_first_name" "customer_first_name" + , "c_last_name" "customer_last_name" + , "c_preferred_cust_flag" "customer_preferred_cust_flag" + , "c_birth_country" "customer_birth_country" + , "c_login" "customer_login" + , "c_email_address" "customer_email_address" + , "d_year" "dyear" + , "sum"((((("ws_ext_list_price" - "ws_ext_wholesale_cost") - "ws_ext_discount_amt") + "ws_ext_sales_price") / 2)) "year_total" + , 'w' "sale_type" + FROM + customer + , web_sales + , date_dim + WHERE ("c_customer_sk" = "ws_bill_customer_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + GROUP BY "c_customer_id", "c_first_name", "c_last_name", "c_preferred_cust_flag", "c_birth_country", "c_login", "c_email_address", "d_year" +) +SELECT + "t_s_secyear"."customer_id" +, "t_s_secyear"."customer_first_name" +, "t_s_secyear"."customer_last_name" +, "t_s_secyear"."customer_preferred_cust_flag" +FROM + year_total t_s_firstyear +, year_total t_s_secyear +, year_total t_c_firstyear +, year_total t_c_secyear +, year_total t_w_firstyear +, year_total t_w_secyear +WHERE ("t_s_secyear"."customer_id" = "t_s_firstyear"."customer_id") + AND ("t_s_firstyear"."customer_id" = "t_c_secyear"."customer_id") + AND ("t_s_firstyear"."customer_id" = "t_c_firstyear"."customer_id") + AND ("t_s_firstyear"."customer_id" = "t_w_firstyear"."customer_id") + AND ("t_s_firstyear"."customer_id" = "t_w_secyear"."customer_id") + AND ("t_s_firstyear"."sale_type" = 's') + AND ("t_c_firstyear"."sale_type" = 'c') + AND ("t_w_firstyear"."sale_type" = 'w') + AND ("t_s_secyear"."sale_type" = 's') + AND ("t_c_secyear"."sale_type" = 'c') + AND ("t_w_secyear"."sale_type" = 'w') + AND ("t_s_firstyear"."dyear" = 2001) + AND ("t_s_secyear"."dyear" = (2001 + 1)) + AND ("t_c_firstyear"."dyear" = 2001) + AND ("t_c_secyear"."dyear" = (2001 + 1)) + AND ("t_w_firstyear"."dyear" = 2001) + AND ("t_w_secyear"."dyear" = (2001 + 1)) + AND ("t_s_firstyear"."year_total" > 0) + AND ("t_c_firstyear"."year_total" > 0) + AND ("t_w_firstyear"."year_total" > 0) + AND ((CASE WHEN ("t_c_firstyear"."year_total" > 0) THEN ("t_c_secyear"."year_total" / "t_c_firstyear"."year_total") ELSE null END) > (CASE WHEN ("t_s_firstyear"."year_total" > 0) THEN ("t_s_secyear"."year_total" / "t_s_firstyear"."year_total") ELSE null END)) + AND ((CASE WHEN ("t_c_firstyear"."year_total" > 0) THEN ("t_c_secyear"."year_total" / "t_c_firstyear"."year_total") ELSE null END) > (CASE WHEN ("t_w_firstyear"."year_total" > 0) THEN ("t_w_secyear"."year_total" / "t_w_firstyear"."year_total") ELSE null END)) +ORDER BY "t_s_secyear"."customer_id" ASC, "t_s_secyear"."customer_first_name" ASC, "t_s_secyear"."customer_last_name" ASC, "t_s_secyear"."customer_preferred_cust_flag" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q05.sql b/presto-tpcds/src/main/resources/tpcds/queries/q05.sql new file mode 100644 index 0000000000000..06c368ad9b8fd --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q05.sql @@ -0,0 +1,145 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ssr AS ( + SELECT + "s_store_id" + , "sum"("sales_price") "sales" + , "sum"("profit") "profit" + , "sum"("return_amt") "returns" + , "sum"("net_loss") "profit_loss" + FROM + ( + SELECT + "ss_store_sk" "store_sk" + , "ss_sold_date_sk" "date_sk" + , "ss_ext_sales_price" "sales_price" + , "ss_net_profit" "profit" + , CAST(0 AS DECIMAL(7,2)) "return_amt" + , CAST(0 AS DECIMAL(7,2)) "net_loss" + FROM + store_sales +UNION ALL SELECT + "sr_store_sk" "store_sk" + , "sr_returned_date_sk" "date_sk" + , CAST(0 AS DECIMAL(7,2)) "sales_price" + , CAST(0 AS DECIMAL(7,2)) "profit" + , "sr_return_amt" "return_amt" + , "sr_net_loss" "net_loss" + FROM + store_returns + ) salesreturns + , date_dim + , store + WHERE ("date_sk" = "d_date_sk") + AND ("d_date" BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '14' DAY)) + AND ("store_sk" = "s_store_sk") + GROUP BY "s_store_id" +) +, csr AS ( + SELECT + "cp_catalog_page_id" + , "sum"("sales_price") "sales" + , "sum"("profit") "profit" + , "sum"("return_amt") "returns" + , "sum"("net_loss") "profit_loss" + FROM + ( + SELECT + "cs_catalog_page_sk" "page_sk" + , "cs_sold_date_sk" "date_sk" + , "cs_ext_sales_price" "sales_price" + , "cs_net_profit" "profit" + , CAST(0 AS DECIMAL(7,2)) "return_amt" + , CAST(0 AS DECIMAL(7,2)) "net_loss" + FROM + catalog_sales +UNION ALL SELECT + "cr_catalog_page_sk" "page_sk" + , "cr_returned_date_sk" "date_sk" + , CAST(0 AS DECIMAL(7,2)) "sales_price" + , CAST(0 AS DECIMAL(7,2)) "profit" + , "cr_return_amount" "return_amt" + , "cr_net_loss" "net_loss" + FROM + catalog_returns + ) salesreturns + , date_dim + , catalog_page + WHERE ("date_sk" = "d_date_sk") + AND ("d_date" BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '14' DAY)) + AND ("page_sk" = "cp_catalog_page_sk") + GROUP BY "cp_catalog_page_id" +) +, wsr AS ( + SELECT + "web_site_id" + , "sum"("sales_price") "sales" + , "sum"("profit") "profit" + , "sum"("return_amt") "returns" + , "sum"("net_loss") "profit_loss" + FROM + ( + SELECT + "ws_web_site_sk" "wsr_web_site_sk" + , "ws_sold_date_sk" "date_sk" + , "ws_ext_sales_price" "sales_price" + , "ws_net_profit" "profit" + , CAST(0 AS DECIMAL(7,2)) "return_amt" + , CAST(0 AS DECIMAL(7,2)) "net_loss" + FROM + web_sales +UNION ALL SELECT + "ws_web_site_sk" "wsr_web_site_sk" + , "wr_returned_date_sk" "date_sk" + , CAST(0 AS DECIMAL(7,2)) "sales_price" + , CAST(0 AS DECIMAL(7,2)) "profit" + , "wr_return_amt" "return_amt" + , "wr_net_loss" "net_loss" + FROM + (web_returns + LEFT 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('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '14' DAY)) + AND ("wsr_web_site_sk" = "web_site_sk") + GROUP BY "web_site_id" +) +SELECT + "channel" +, "id" +, "sum"("sales") "sales" +, "sum"("returns") "returns" +, "sum"("profit") "profit" +FROM + ( + SELECT + 'store channel' "channel" + , "concat"('store', "s_store_id") "id" + , "sales" + , "returns" + , ("profit" - "profit_loss") "profit" + FROM + ssr +UNION ALL SELECT + 'catalog channel' "channel" + , "concat"('catalog_page', "cp_catalog_page_id") "id" + , "sales" + , "returns" + , ("profit" - "profit_loss") "profit" + FROM + csr +UNION ALL SELECT + 'web channel' "channel" + , "concat"('web_site', "web_site_id") "id" + , "sales" + , "returns" + , ("profit" - "profit_loss") "profit" + FROM + wsr +) x +GROUP BY ROLLUP (channel, id) +ORDER BY "channel" ASC, "id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q06.sql b/presto-tpcds/src/main/resources/tpcds/queries/q06.sql new file mode 100644 index 0000000000000..af4c100e563db --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q06.sql @@ -0,0 +1,32 @@ +-- database: presto_tpcds; groups: tpcds, big_query; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +--- takes over 30 minutes on travis to complete +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" = 2001) + AND ("d_moy" = 1) + )) + AND ("i"."i_current_price" > (DECIMAL '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" ASC, "a"."ca_state" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q07.sql b/presto-tpcds/src/main/resources/tpcds/queries/q07.sql new file mode 100644 index 0000000000000..993e0c6f6f0fd --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q07.sql @@ -0,0 +1,26 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 'M') + AND ("cd_marital_status" = 'S') + AND ("cd_education_status" = 'College ') + AND (("p_channel_email" = 'N') + OR ("p_channel_event" = 'N')) + AND ("d_year" = 2000) +GROUP BY "i_item_id" +ORDER BY "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q08.sql b/presto-tpcds/src/main/resources/tpcds/queries/q08.sql new file mode 100644 index 0000000000000..c29c70081c7c0 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q08.sql @@ -0,0 +1,442 @@ +-- database: presto_tpcds; groups: tpcds,quarantine; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 ' + , '57834 ' + , '13354 ' + , '15734 ' + , '78668 ' + , '76232 ' + , '62878 ' + , '45375 ' + , '63435 ' + , '22245 ' + , '65084 ' + , '49130 ' + , '40558 ' + , '25733 ' + , '15798 ' + , '87816 ' + , '81096 ' + , '56458 ' + , '35474 ' + , '27156 ' + , '83926 ' + , '18840 ' + , '28286 ' + , '24676 ' + , '37930 ' + , '77556 ' + , '27700 ' + , '45266 ' + , '94627 ' + , '62971 ' + , '20548 ' + , '23470 ' + , '47305 ' + , '53535 ' + , '21337 ' + , '26231 ' + , '50412 ' + , '69399 ' + , '17879 ' + , '51622 ' + , '43848 ' + , '21195 ' + , '83921 ' + , '15559 ' + , '67853 ' + , '15126 ' + , '16021 ' + , '26233 ' + , '53268 ' + , '10567 ' + , '91137 ' + , '76107 ' + , '11101 ' + , '59166 ' + , '38415 ' + , '61265 ' + , '71954 ' + , '15371 ' + , '11928 ' + , '15455 ' + , '98294 ' + , '68309 ' + , '69913 ' + , '59402 ' + , '58263 ' + , '25782 ' + , '18119 ' + , '35942 ' + , '33282 ' + , '42029 ' + , '17920 ' + , '98359 ' + , '15882 ' + , '45721 ' + , '60279 ' + , '18426 ' + , '64544 ' + , '25631 ' + , '43933 ' + , '37125 ' + , '98235 ' + , '10336 ' + , '24610 ' + , '68101 ' + , '56240 ' + , '40081 ' + , '86379 ' + , '44165 ' + , '33515 ' + , '88190 ' + , '84093 ' + , '27068 ' + , '99076 ' + , '36634 ' + , '50308 ' + , '28577 ' + , '39736 ' + , '33786 ' + , '71286 ' + , '26859 ' + , '55565 ' + , '98569 ' + , '70738 ' + , '19736 ' + , '64457 ' + , '17183 ' + , '28915 ' + , '26653 ' + , '58058 ' + , '89091 ' + , '54601 ' + , '24206 ' + , '14328 ' + , '55253 ' + , '82136 ' + , '67897 ' + , '56529 ' + , '72305 ' + , '67473 ' + , '62377 ' + , '22752 ' + , '57647 ' + , '62496 ' + , '41918 ' + , '36233 ' + , '86284 ' + , '54917 ' + , '22152 ' + , '19515 ' + , '63837 ' + , '18376 ' + , '42961 ' + , '10144 ' + , '36495 ' + , '58078 ' + , '38607 ' + , '91110 ' + , '64147 ' + , '19430 ' + , '17043 ' + , '45200 ' + , '63981 ' + , '48425 ' + , '22351 ' + , '30010 ' + , '21756 ' + , '14922 ' + , '14663 ' + , '77191 ' + , '60099 ' + , '29741 ' + , '36420 ' + , '21076 ' + , '91393 ' + , '28810 ' + , '96765 ' + , '23006 ' + , '18799 ' + , '49156 ' + , '98025 ' + , '23932 ' + , '67467 ' + , '30450 ' + , '50298 ' + , '29178 ' + , '89360 ' + , '32754 ' + , '63089 ' + , '87501 ' + , '87343 ' + , '29839 ' + , '30903 ' + , '81019 ' + , '18652 ' + , '73273 ' + , '25989 ' + , '20260 ' + , '68893 ' + , '53179 ' + , '30469 ' + , '28898 ' + , '31671 ' + , '24996 ' + , '18767 ' + , '64034 ' + , '91068 ' + , '51798 ' + , '51200 ' + , '63193 ' + , '39516 ' + , '72550 ' + , '72325 ' + , '51211 ' + , '23968 ' + , '86057 ' + , '10390 ' + , '85816 ' + , '45692 ' + , '65164 ' + , '21309 ' + , '18845 ' + , '68621 ' + , '92712 ' + , '68880 ' + , '90257 ' + , '47770 ' + , '13955 ' + , '70466 ' + , '21286 ' + , '67875 ' + , '82636 ' + , '36446 ' + , '79994 ' + , '72823 ' + , '40162 ' + , '41367 ' + , '41766 ' + , '22437 ' + , '58470 ' + , '11356 ' + , '76638 ' + , '68806 ' + , '25280 ' + , '67301 ' + , '73650 ' + , '86198 ' + , '16725 ' + , '38935 ' + , '13394 ' + , '61810 ' + , '81312 ' + , '15146 ' + , '71791 ' + , '31016 ' + , '72013 ' + , '37126 ' + , '22744 ' + , '73134 ' + , '70372 ' + , '30431 ' + , '39192 ' + , '35850 ' + , '56571 ' + , '67030 ' + , '22461 ' + , '88424 ' + , '88086 ' + , '14060 ' + , '40604 ' + , '19512 ' + , '72175 ' + , '51649 ' + , '19505 ' + , '24317 ' + , '13375 ' + , '81426 ' + , '18270 ' + , '72425 ' + , '45748 ' + , '55307 ' + , '53672 ' + , '52867 ' + , '56575 ' + , '39127 ' + , '30625 ' + , '10445 ' + , '39972 ' + , '74351 ' + , '26065 ' + , '83849 ' + , '42666 ' + , '96976 ' + , '68786 ' + , '77721 ' + , '68908 ' + , '66864 ' + , '63792 ' + , '51650 ' + , '31029 ' + , '26689 ' + , '66708 ' + , '11376 ' + , '20004 ' + , '31880 ' + , '96451 ' + , '41248 ' + , '94898 ' + , '18383 ' + , '60576 ' + , '38193 ' + , '48583 ' + , '13595 ' + , '76614 ' + , '24671 ' + , '46820 ' + , '82276 ' + , '10516 ' + , '11634 ' + , '45549 ' + , '88885 ' + , '18842 ' + , '90225 ' + , '18906 ' + , '13376 ' + , '84935 ' + , '78890 ' + , '58943 ' + , '15765 ' + , '50016 ' + , '69035 ' + , '49448 ' + , '39371 ' + , '41368 ' + , '33123 ' + , '83144 ' + , '14089 ' + , '94945 ' + , '73241 ' + , '19769 ' + , '47537 ' + , '38122 ' + , '28587 ' + , '76698 ' + , '22927 ' + , '56616 ' + , '34425 ' + , '96576 ' + , '78567 ' + , '97789 ' + , '94983 ' + , '79077 ' + , '57855 ' + , '97189 ' + , '46081 ' + , '48033 ' + , '19849 ' + , '28488 ' + , '28545 ' + , '72151 ' + , '69952 ' + , '43285 ' + , '26105 ' + , '76231 ' + , '15723 ' + , '25486 ' + , '39861 ' + , '83933 ' + , '75691 ' + , '46136 ' + , '61547 ' + , '66162 ' + , '25858 ' + , '22246 ' + , '51949 ' + , '27385 ' + , '77610 ' + , '34322 ' + , '51061 ' + , '68100 ' + , '61860 ' + , '13695 ' + , '44438 ' + , '90578 ' + , '96888 ' + , '58048 ' + , '99543 ' + , '73171 ' + , '56691 ' + , '64528 ' + , '56910 ' + , '83444 ' + , '30122 ' + , '68014 ' + , '14171 ' + , '16807 ' + , '83041 ' + , '34102 ' + , '51103 ' + , '79777 ' + , '17871 ' + , '12305 ' + , '22685 ' + , '94167 ' + , '28709 ' + , '35258 ' + , '57665 ' + , '71256 ' + , '57047 ' + , '11489 ' + , '31387 ' + , '68341 ' + , '78451 ' + , '14867 ' + , '25103 ' + , '35458 ' + , '25003 ' + , '54364 ' + , '73520 ' + , '32213 ' + , '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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q09.sql b/presto-tpcds/src/main/resources/tpcds/queries/q09.sql new file mode 100644 index 0000000000000..6db8af098c8fe --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q09.sql @@ -0,0 +1,85 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + (CASE WHEN (( + SELECT "count"(*) + FROM + store_sales + WHERE ("ss_quantity" BETWEEN 1 AND 20) + ) > 74129) 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) + ) > 122840) 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) + ) > 56580) 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) + ) > 10097) 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) + ) > 165306) 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) diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q10.sql b/presto-tpcds/src/main/resources/tpcds/queries/q10.sql new file mode 100644 index 0000000000000..35c1b018264c2 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q10.sql @@ -0,0 +1,56 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 ('Rush County', 'Toole County', 'Jefferson County', 'Dona Ana County', 'La Porte 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 1 AND (1 + 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 1 AND (1 + 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 1 AND (1 + 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" ASC, "cd_marital_status" ASC, "cd_education_status" ASC, "cd_purchase_estimate" ASC, "cd_credit_rating" ASC, "cd_dep_count" ASC, "cd_dep_employed_count" ASC, "cd_dep_college_count" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q11.sql b/presto-tpcds/src/main/resources/tpcds/queries/q11.sql new file mode 100644 index 0000000000000..72664871bdcb2 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q11.sql @@ -0,0 +1,68 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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_preferred_cust_flag" +, "t_s_secyear"."customer_birth_country" +, "t_s_secyear"."customer_login" +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 DECIMAL '0.0' END) > (CASE WHEN ("t_s_firstyear"."year_total" > 0) THEN ("t_s_secyear"."year_total" / "t_s_firstyear"."year_total") ELSE DECIMAL '0.0' END)) +ORDER BY "t_s_secyear"."customer_id" ASC, "t_s_secyear"."customer_first_name" ASC, "t_s_secyear"."customer_last_name" ASC, "t_s_secyear"."customer_preferred_cust_flag" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q12.sql b/presto-tpcds/src/main/resources/tpcds/queries/q12.sql new file mode 100644 index 0000000000000..e4e8f5110f429 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q12.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "i_category" +, "i_class" +, "i_current_price" +, "sum"("ws_ext_sales_price") "itemrevenue" +, (("sum"("ws_ext_sales_price") * 100) / "sum"("sum"("ws_ext_sales_price")) OVER (PARTITION BY "i_class")) "revenueratio" +FROM + web_sales +, item +, date_dim +WHERE ("ws_item_sk" = "i_item_sk") + AND ("i_category" IN ('Sports ', 'Books ', 'Home ')) + AND ("ws_sold_date_sk" = "d_date_sk") + AND (CAST("d_date" AS DATE) BETWEEN CAST('1999-02-22' AS DATE) AND (CAST('1999-02-22' AS DATE) + INTERVAL '30' DAY)) +GROUP BY "i_item_id", "i_item_desc", "i_category", "i_class", "i_current_price" +ORDER BY "i_category" ASC, "i_class" ASC, "i_item_id" ASC, "i_item_desc" ASC, "revenueratio" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q13.sql b/presto-tpcds/src/main/resources/tpcds/queries/q13.sql new file mode 100644 index 0000000000000..182857360357c --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q13.sql @@ -0,0 +1,46 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 'M') + AND ("cd_education_status" = 'Advanced Degree ') + AND ("ss_sales_price" BETWEEN DECIMAL '100.00' AND DECIMAL '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" = 'College ') + AND ("ss_sales_price" BETWEEN DECIMAL '50.00' AND DECIMAL '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" = '2 yr Degree ') + AND ("ss_sales_price" BETWEEN DECIMAL '150.00' AND DECIMAL '200.00') + AND ("hd_dep_count" = 1))) + AND ((("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('TX' , 'OH' , 'TX')) + AND ("ss_net_profit" BETWEEN 100 AND 200)) + OR (("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('OR' , 'NM' , 'KY')) + AND ("ss_net_profit" BETWEEN 150 AND 300)) + OR (("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('VA' , 'TX' , 'MS')) + AND ("ss_net_profit" BETWEEN 50 AND 250))) diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q14_1.sql b/presto-tpcds/src/main/resources/tpcds/queries/q14_1.sql new file mode 100644 index 0000000000000..ac273ac899e11 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q14_1.sql @@ -0,0 +1,166 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + cross_items AS ( + SELECT "i_item_sk" "ss_item_sk" + FROM + item + , ( + SELECT + "iss"."i_brand_id" "brand_id" + , "iss"."i_class_id" "class_id" + , "iss"."i_category_id" "category_id" + FROM + store_sales + , item iss + , date_dim d1 + WHERE ("ss_item_sk" = "iss"."i_item_sk") + AND ("ss_sold_date_sk" = "d1"."d_date_sk") + AND ("d1"."d_year" BETWEEN 1999 AND (1999 + 2)) +INTERSECT SELECT + "ics"."i_brand_id" + , "ics"."i_class_id" + , "ics"."i_category_id" + FROM + catalog_sales + , item ics + , date_dim d2 + WHERE ("cs_item_sk" = "ics"."i_item_sk") + AND ("cs_sold_date_sk" = "d2"."d_date_sk") + AND ("d2"."d_year" BETWEEN 1999 AND (1999 + 2)) +INTERSECT SELECT + "iws"."i_brand_id" + , "iws"."i_class_id" + , "iws"."i_category_id" + FROM + web_sales + , item iws + , date_dim d3 + WHERE ("ws_item_sk" = "iws"."i_item_sk") + AND ("ws_sold_date_sk" = "d3"."d_date_sk") + AND ("d3"."d_year" BETWEEN 1999 AND (1999 + 2)) + ) + WHERE ("i_brand_id" = "brand_id") + AND ("i_class_id" = "class_id") + AND ("i_category_id" = "category_id") +) +, avg_sales AS ( + SELECT "avg"(("quantity" * "list_price")) "average_sales" + FROM + ( + SELECT + "ss_quantity" "quantity" + , "ss_list_price" "list_price" + FROM + store_sales + , date_dim + WHERE ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" BETWEEN 1999 AND (1999 + 2)) +UNION ALL SELECT + "cs_quantity" "quantity" + , "cs_list_price" "list_price" + FROM + catalog_sales + , date_dim + WHERE ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" BETWEEN 1999 AND (1999 + 2)) +UNION ALL SELECT + "ws_quantity" "quantity" + , "ws_list_price" "list_price" + FROM + web_sales + , date_dim + WHERE ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" BETWEEN 1999 AND (1999 + 2)) + ) x +) +SELECT + "channel" +, "i_brand_id" +, "i_class_id" +, "i_category_id" +, "sum"("sales") +, "sum"("number_sales") +FROM + ( + SELECT + 'store' "channel" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "sum"(("ss_quantity" * "ss_list_price")) "sales" + , "count"(*) "number_sales" + FROM + store_sales + , item + , date_dim + WHERE ("ss_item_sk" IN ( + SELECT "ss_item_sk" + FROM + cross_items + )) + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" = (1999 + 2)) + AND ("d_moy" = 11) + GROUP BY "i_brand_id", "i_class_id", "i_category_id" + HAVING ("sum"(("ss_quantity" * "ss_list_price")) > ( + SELECT "average_sales" + FROM + avg_sales + )) +UNION ALL SELECT + 'catalog' "channel" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "sum"(("cs_quantity" * "cs_list_price")) "sales" + , "count"(*) "number_sales" + FROM + catalog_sales + , item + , date_dim + WHERE ("cs_item_sk" IN ( + SELECT "ss_item_sk" + FROM + cross_items + )) + AND ("cs_item_sk" = "i_item_sk") + AND ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" = (1999 + 2)) + AND ("d_moy" = 11) + GROUP BY "i_brand_id", "i_class_id", "i_category_id" + HAVING ("sum"(("cs_quantity" * "cs_list_price")) > ( + SELECT "average_sales" + FROM + avg_sales + )) +UNION ALL SELECT + 'web' "channel" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "sum"(("ws_quantity" * "ws_list_price")) "sales" + , "count"(*) "number_sales" + FROM + web_sales + , item + , date_dim + WHERE ("ws_item_sk" IN ( + SELECT "ss_item_sk" + FROM + cross_items + )) + AND ("ws_item_sk" = "i_item_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" = (1999 + 2)) + AND ("d_moy" = 11) + GROUP BY "i_brand_id", "i_class_id", "i_category_id" + HAVING ("sum"(("ws_quantity" * "ws_list_price")) > ( + SELECT "average_sales" + FROM + avg_sales + )) +) y +GROUP BY ROLLUP (channel, i_brand_id, i_class_id, i_category_id) +ORDER BY "channel" ASC, "i_brand_id" ASC, "i_class_id" ASC, "i_category_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q14_2.sql b/presto-tpcds/src/main/resources/tpcds/queries/q14_2.sql new file mode 100644 index 0000000000000..ad61f3ea2ac7c --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q14_2.sql @@ -0,0 +1,150 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + cross_items AS ( + SELECT "i_item_sk" "ss_item_sk" + FROM + item + , ( + SELECT + "iss"."i_brand_id" "brand_id" + , "iss"."i_class_id" "class_id" + , "iss"."i_category_id" "category_id" + FROM + store_sales + , item iss + , date_dim d1 + WHERE ("ss_item_sk" = "iss"."i_item_sk") + AND ("ss_sold_date_sk" = "d1"."d_date_sk") + AND ("d1"."d_year" BETWEEN 1999 AND (1999 + 2)) +INTERSECT SELECT + "ics"."i_brand_id" + , "ics"."i_class_id" + , "ics"."i_category_id" + FROM + catalog_sales + , item ics + , date_dim d2 + WHERE ("cs_item_sk" = "ics"."i_item_sk") + AND ("cs_sold_date_sk" = "d2"."d_date_sk") + AND ("d2"."d_year" BETWEEN 1999 AND (1999 + 2)) +INTERSECT SELECT + "iws"."i_brand_id" + , "iws"."i_class_id" + , "iws"."i_category_id" + FROM + web_sales + , item iws + , date_dim d3 + WHERE ("ws_item_sk" = "iws"."i_item_sk") + AND ("ws_sold_date_sk" = "d3"."d_date_sk") + AND ("d3"."d_year" BETWEEN 1999 AND (1999 + 2)) + ) 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 1999 AND (1999 + 2)) +UNION ALL SELECT + "cs_quantity" "quantity" + , "cs_list_price" "list_price" + FROM + catalog_sales + , date_dim + WHERE ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" BETWEEN 1999 AND (1999 + 2)) +UNION ALL SELECT + "ws_quantity" "quantity" + , "ws_list_price" "list_price" + FROM + web_sales + , date_dim + WHERE ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" BETWEEN 1999 AND (1999 + 2)) + ) +) +SELECT * +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" = (1999 + 1)) + AND ("d_moy" = 12) + AND ("d_dom" = 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 + )) +) 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" = 1999) + AND ("d_moy" = 12) + AND ("d_dom" = 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 + )) +) 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" ASC, "this_year"."i_brand_id" ASC, "this_year"."i_class_id" ASC, "this_year"."i_category_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q15.sql b/presto-tpcds/src/main/resources/tpcds/queries/q15.sql new file mode 100644 index 0000000000000..acc1789d99dff --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q15.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 2001) +GROUP BY "ca_zip" +ORDER BY "ca_zip" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q16.sql b/presto-tpcds/src/main/resources/tpcds/queries/q16.sql new file mode 100644 index 0000000000000..ff99303c616f1 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q16.sql @@ -0,0 +1,31 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "count"(DISTINCT "cs_order_number") "order count" +, "sum"("cs_ext_ship_cost") "total shipping cost" +, "sum"("cs_net_profit") "total net profit" +FROM + catalog_sales cs1 +, date_dim +, customer_address +, call_center +WHERE ("d_date" BETWEEN CAST('2002-2-01' AS DATE) AND (CAST('2002-2-01' AS DATE) + INTERVAL '60' DAY)) + AND ("cs1"."cs_ship_date_sk" = "d_date_sk") + AND ("cs1"."cs_ship_addr_sk" = "ca_address_sk") + AND ("ca_state" = 'GA') + 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") ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q17.sql b/presto-tpcds/src/main/resources/tpcds/queries/q17.sql new file mode 100644 index 0000000000000..5cd52020e4bbd --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q17.sql @@ -0,0 +1,42 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "s_state" +, "count"("ss_quantity") "store_sales_quantitycount" +, "avg"("ss_quantity") "store_sales_quantityave" +, "stddev_samp"("ss_quantity") "store_sales_quantitystdev" +, ("stddev_samp"("ss_quantity") / "avg"("ss_quantity")) "store_sales_quantitycov" +, "count"("sr_return_quantity") "store_returns_quantitycount" +, "avg"("sr_return_quantity") "store_returns_quantityave" +, "stddev_samp"("sr_return_quantity") "store_returns_quantitystdev" +, ("stddev_samp"("sr_return_quantity") / "avg"("sr_return_quantity")) "store_returns_quantitycov" +, "count"("cs_quantity") "catalog_sales_quantitycount" +, "avg"("cs_quantity") "catalog_sales_quantityave" +, "stddev_samp"("cs_quantity") "catalog_sales_quantitystdev" +, ("stddev_samp"("cs_quantity") / "avg"("cs_quantity")) "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" = '2001Q1') + 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 ('2001Q1', '2001Q2', '2001Q3')) + 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 ('2001Q1', '2001Q2', '2001Q3')) +GROUP BY "i_item_id", "i_item_desc", "s_state" +ORDER BY "i_item_id" ASC, "i_item_desc" ASC, "s_state" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q18.sql b/presto-tpcds/src/main/resources/tpcds/queries/q18.sql new file mode 100644 index 0000000000000..b23d81cb35e33 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q18.sql @@ -0,0 +1,35 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 'F') + AND ("cd1"."cd_education_status" = 'Unknown ') + AND ("c_current_cdemo_sk" = "cd2"."cd_demo_sk") + AND ("c_current_addr_sk" = "ca_address_sk") + AND ("c_birth_month" IN (1, 6, 8, 9, 12, 2)) + AND ("d_year" = 1998) + AND ("ca_state" IN ('MS', 'IN', 'ND', 'OK', 'NM', 'VA', 'MS')) +GROUP BY ROLLUP (i_item_id, ca_country, ca_state, ca_county) +ORDER BY "ca_country" ASC, "ca_state" ASC, "ca_county" ASC, "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q19.sql b/presto-tpcds/src/main/resources/tpcds/queries/q19.sql new file mode 100644 index 0000000000000..6d42f77febb6d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q19.sql @@ -0,0 +1,26 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 8) + AND ("d_moy" = 11) + AND ("d_year" = 1998) + 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" ASC, "i_brand_id" ASC, "i_manufact_id" ASC, "i_manufact" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q20.sql b/presto-tpcds/src/main/resources/tpcds/queries/q20.sql new file mode 100644 index 0000000000000..dcc840ce848a8 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q20.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "i_category" +, "i_class" +, "i_current_price" +, "sum"("cs_ext_sales_price") "itemrevenue" +, (("sum"("cs_ext_sales_price") * 100) / "sum"("sum"("cs_ext_sales_price")) OVER (PARTITION BY "i_class")) "revenueratio" +FROM + catalog_sales +, item +, date_dim +WHERE ("cs_item_sk" = "i_item_sk") + AND ("i_category" IN ('Sports ', 'Books ', 'Home ')) + AND ("cs_sold_date_sk" = "d_date_sk") + AND (CAST("d_date" AS DATE) BETWEEN CAST('1999-02-22' AS DATE) AND (CAST('1999-02-22' AS DATE) + INTERVAL '30' DAY)) +GROUP BY "i_item_id", "i_item_desc", "i_category", "i_class", "i_current_price" +ORDER BY "i_category" ASC, "i_class" ASC, "i_item_id" ASC, "i_item_desc" ASC, "revenueratio" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q21.sql b/presto-tpcds/src/main/resources/tpcds/queries/q21.sql new file mode 100644 index 0000000000000..054f5144fd8d5 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q21.sql @@ -0,0 +1,24 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT * +FROM + ( + SELECT + "w_warehouse_name" + , "i_item_id" + , "sum"((CASE WHEN (CAST("d_date" AS DATE) < CAST('2000-03-11' AS DATE)) THEN "inv_quantity_on_hand" ELSE 0 END)) "inv_before" + , "sum"((CASE WHEN (CAST("d_date" AS DATE) >= CAST('2000-03-11' AS DATE)) THEN "inv_quantity_on_hand" ELSE 0 END)) "inv_after" + FROM + inventory + , warehouse + , item + , date_dim + WHERE ("i_current_price" BETWEEN DECIMAL '0.99' AND DECIMAL '1.49') + AND ("i_item_sk" = "inv_item_sk") + AND ("inv_warehouse_sk" = "w_warehouse_sk") + AND ("inv_date_sk" = "d_date_sk") + AND ("d_date" BETWEEN (CAST('2000-03-11' AS DATE) - INTERVAL '30' DAY) AND (CAST('2000-03-11' AS DATE) + INTERVAL '30' DAY)) + GROUP BY "w_warehouse_name", "i_item_id" +) x +WHERE ((CASE WHEN ("inv_before" > 0) THEN (CAST("inv_after" AS DECIMAL(7,2)) / "inv_before") ELSE null END) BETWEEN (DECIMAL '2.00' / DECIMAL '3.00') AND (DECIMAL '3.00' / DECIMAL '2.00')) +ORDER BY "w_warehouse_name" ASC, "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q22.sql b/presto-tpcds/src/main/resources/tpcds/queries/q22.sql new file mode 100644 index 0000000000000..95b9255cb2549 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q22.sql @@ -0,0 +1,17 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 1200 AND (1200 + 11)) +GROUP BY ROLLUP (i_product_name, i_brand, i_class, i_category) +ORDER BY "qoh" ASC, "i_product_name" ASC, "i_brand" ASC, "i_class" ASC, "i_category" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q23_1.sql b/presto-tpcds/src/main/resources/tpcds/queries/q23_1.sql new file mode 100644 index 0000000000000..ea96b118853a4 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q23_1.sql @@ -0,0 +1,90 @@ +-- database: presto_tpcds; groups: tpcds, quarantine; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +--- quarantined due https://github.com/prestodb/presto/issues/6991 +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 (2000 , (2000 + 1) , (2000 + 2) , (2000 + 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 (2000 , (2000 + 1) , (2000 + 2) , (2000 + 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")) > ((50 / DECIMAL '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" = 2000) + AND ("d_moy" = 2) + 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" = 2000) + AND ("d_moy" = 2) + 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/presto-tpcds/src/main/resources/tpcds/queries/q23_2.sql b/presto-tpcds/src/main/resources/tpcds/queries/q23_2.sql new file mode 100644 index 0000000000000..83fabb54c1c32 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q23_2.sql @@ -0,0 +1,105 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (2000 , (2000 + 1) , (2000 + 2) , (2000 + 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 (2000 , (2000 + 1) , (2000 + 2) , (2000 + 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")) > ((50 / DECIMAL '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" = 2000) + AND ("d_moy" = 2) + 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" = 2000) + AND ("d_moy" = 2) + 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" ASC, "c_first_name" ASC, "sales" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q24_1.sql b/presto-tpcds/src/main/resources/tpcds/queries/q24_1.sql new file mode 100644 index 0000000000000..4db694ceebfb6 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q24_1.sql @@ -0,0 +1,46 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ssales AS ( + SELECT + "c_last_name" + , "c_first_name" + , "s_store_name" + , "ca_state" + , "s_state" + , "i_color" + , "i_current_price" + , "i_manager_id" + , "i_units" + , "i_size" + , "sum"("ss_net_paid") "netpaid" + FROM + store_sales + , store_returns + , store + , item + , customer + , customer_address + WHERE ("ss_ticket_number" = "sr_ticket_number") + AND ("ss_item_sk" = "sr_item_sk") + AND ("ss_customer_sk" = "c_customer_sk") + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_store_sk" = "s_store_sk") + AND ("c_birth_country" = "upper"("ca_country")) + AND ("s_zip" = "ca_zip") + AND ("s_market_id" = 8) + 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" = 'pale ') +GROUP BY "c_last_name", "c_first_name", "s_store_name" +HAVING ("sum"("netpaid") > ( + SELECT (DECIMAL '0.05' * "avg"("netpaid")) + FROM + ssales + )) diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q24_2.sql b/presto-tpcds/src/main/resources/tpcds/queries/q24_2.sql new file mode 100644 index 0000000000000..f940d3a5abc49 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q24_2.sql @@ -0,0 +1,46 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ssales AS ( + SELECT + "c_last_name" + , "c_first_name" + , "s_store_name" + , "ca_state" + , "s_state" + , "i_color" + , "i_current_price" + , "i_manager_id" + , "i_units" + , "i_size" + , "sum"("ss_net_paid") "netpaid" + FROM + store_sales + , store_returns + , store + , item + , customer + , customer_address + WHERE ("ss_ticket_number" = "sr_ticket_number") + AND ("ss_item_sk" = "sr_item_sk") + AND ("ss_customer_sk" = "c_customer_sk") + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_store_sk" = "s_store_sk") + AND ("c_birth_country" = "upper"("ca_country")) + AND ("s_zip" = "ca_zip") + AND ("s_market_id" = 8) + 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 (DECIMAL '0.05' * "avg"("netpaid")) + FROM + ssales + )) diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q25.sql b/presto-tpcds/src/main/resources/tpcds/queries/q25.sql new file mode 100644 index 0000000000000..dfb7ec3184f57 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q25.sql @@ -0,0 +1,37 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "s_store_id" +, "s_store_name" +, "sum"("ss_net_profit") "store_sales_profit" +, "sum"("sr_net_loss") "store_returns_loss" +, "sum"("cs_net_profit") "catalog_sales_profit" +FROM + store_sales +, store_returns +, catalog_sales +, date_dim d1 +, date_dim d2 +, date_dim d3 +, store +, item +WHERE ("d1"."d_moy" = 4) + AND ("d1"."d_year" = 2001) + AND ("d1"."d_date_sk" = "ss_sold_date_sk") + AND ("i_item_sk" = "ss_item_sk") + AND ("s_store_sk" = "ss_store_sk") + AND ("ss_customer_sk" = "sr_customer_sk") + AND ("ss_item_sk" = "sr_item_sk") + AND ("ss_ticket_number" = "sr_ticket_number") + AND ("sr_returned_date_sk" = "d2"."d_date_sk") + AND ("d2"."d_moy" BETWEEN 4 AND 10) + AND ("d2"."d_year" = 2001) + AND ("sr_customer_sk" = "cs_bill_customer_sk") + AND ("sr_item_sk" = "cs_item_sk") + AND ("cs_sold_date_sk" = "d3"."d_date_sk") + AND ("d3"."d_moy" BETWEEN 4 AND 10) + AND ("d3"."d_year" = 2001) +GROUP BY "i_item_id", "i_item_desc", "s_store_id", "s_store_name" +ORDER BY "i_item_id" ASC, "i_item_desc" ASC, "s_store_id" ASC, "s_store_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q26.sql b/presto-tpcds/src/main/resources/tpcds/queries/q26.sql new file mode 100644 index 0000000000000..f7a81e9dd84f3 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q26.sql @@ -0,0 +1,26 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 'M') + AND ("cd_marital_status" = 'S') + AND ("cd_education_status" = 'College ') + AND (("p_channel_email" = 'N') + OR ("p_channel_event" = 'N')) + AND ("d_year" = 2000) +GROUP BY "i_item_id" +ORDER BY "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q27.sql b/presto-tpcds/src/main/resources/tpcds/queries/q27.sql new file mode 100644 index 0000000000000..41a7de7714e4c --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q27.sql @@ -0,0 +1,33 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "s_state" +, GROUPING ("s_state") "g_state" +, "avg"("ss_quantity") "agg1" +, "avg"("ss_list_price") "agg2" +, "avg"("ss_coupon_amt") "agg3" +, "avg"("ss_sales_price") "agg4" +FROM + store_sales +, customer_demographics +, date_dim +, store +, item +WHERE ("ss_sold_date_sk" = "d_date_sk") + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_store_sk" = "s_store_sk") + AND ("ss_cdemo_sk" = "cd_demo_sk") + AND ("cd_gender" = 'M') + AND ("cd_marital_status" = 'S') + AND ("cd_education_status" = 'College ') + AND ("d_year" = 2002) + AND ("s_state" IN ( + 'TN' + , 'TN' + , 'TN' + , 'TN' + , 'TN' + , 'TN')) +GROUP BY ROLLUP (i_item_id, s_state) +ORDER BY "i_item_id" ASC, "s_state" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q28.sql b/presto-tpcds/src/main/resources/tpcds/queries/q28.sql new file mode 100644 index 0000000000000..6b7a9eb60e598 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q28.sql @@ -0,0 +1,76 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 8 AND (8 + 10)) + OR ("ss_coupon_amt" BETWEEN 459 AND (459 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 57 AND (57 + 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 90 AND (90 + 10)) + OR ("ss_coupon_amt" BETWEEN 2323 AND (2323 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 31 AND (31 + 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 142 AND (142 + 10)) + OR ("ss_coupon_amt" BETWEEN 12214 AND (12214 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 79 AND (79 + 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 135 AND (135 + 10)) + OR ("ss_coupon_amt" BETWEEN 6071 AND (6071 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 38 AND (38 + 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 122 AND (122 + 10)) + OR ("ss_coupon_amt" BETWEEN 836 AND (836 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 17 AND (17 + 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 154 AND (154 + 10)) + OR ("ss_coupon_amt" BETWEEN 7326 AND (7326 + 1000)) + OR ("ss_wholesale_cost" BETWEEN 7 AND (7 + 20))) +) b6 +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q29.sql b/presto-tpcds/src/main/resources/tpcds/queries/q29.sql new file mode 100644 index 0000000000000..45a51cc2a4e21 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q29.sql @@ -0,0 +1,36 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "s_store_id" +, "s_store_name" +, "sum"("ss_quantity") "store_sales_quantity" +, "sum"("sr_return_quantity") "store_returns_quantity" +, "sum"("cs_quantity") "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" = 9) + 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 9 AND (9 + 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" ASC, "i_item_desc" ASC, "s_store_id" ASC, "s_store_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q30.sql b/presto-tpcds/src/main/resources/tpcds/queries/q30.sql new file mode 100644 index 0000000000000..de226e14d33f9 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q30.sql @@ -0,0 +1,45 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + customer_total_return AS ( + SELECT + "wr_returning_customer_sk" "ctr_customer_sk" + , "ca_state" "ctr_state" + , "sum"("wr_return_amt") "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") * DECIMAL '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" ASC, "c_salutation" ASC, "c_first_name" ASC, "c_last_name" ASC, "c_preferred_cust_flag" ASC, "c_birth_day" ASC, "c_birth_month" ASC, "c_birth_year" ASC, "c_birth_country" ASC, "c_login" ASC, "c_email_address" ASC, "c_last_review_date_sk" ASC, "ctr_total_return" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q31.sql b/presto-tpcds/src/main/resources/tpcds/queries/q31.sql new file mode 100644 index 0000000000000..ca8b9c81f05d4 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q31.sql @@ -0,0 +1,64 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ss AS ( + SELECT + "ca_county" + , "d_qoy" + , "d_year" + , "sum"("ss_ext_sales_price") "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") "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 (CAST("ws2"."web_sales" AS DECIMAL(38,3)) / "ws1"."web_sales") ELSE null END) > (CASE WHEN ("ss1"."store_sales" > 0) THEN (CAST("ss2"."store_sales" AS DECIMAL(38,3)) / "ss1"."store_sales") ELSE null END)) + AND ((CASE WHEN ("ws2"."web_sales" > 0) THEN (CAST("ws3"."web_sales" AS DECIMAL(38,3)) / "ws2"."web_sales") ELSE null END) > (CASE WHEN ("ss2"."store_sales" > 0) THEN (CAST("ss3"."store_sales" AS DECIMAL(38,3)) / "ss2"."store_sales") ELSE null END)) +ORDER BY "ss1"."ca_county" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q32.sql b/presto-tpcds/src/main/resources/tpcds/queries/q32.sql new file mode 100644 index 0000000000000..23eee97658d21 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q32.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT "sum"("cs_ext_discount_amt") "excess discount amount" +FROM + catalog_sales +, item +, date_dim +WHERE ("i_manufact_id" = 977) + AND ("i_item_sk" = "cs_item_sk") + AND ("d_date" BETWEEN CAST('2000-01-27' AS DATE) AND (CAST('2000-01-27' AS DATE) + INTERVAL '90' DAY)) + AND ("d_date_sk" = "cs_sold_date_sk") + AND ("cs_ext_discount_amt" > ( + SELECT (DECIMAL '1.3' * "avg"("cs_ext_discount_amt")) + FROM + catalog_sales + , date_dim + WHERE ("cs_item_sk" = "i_item_sk") + AND ("d_date" BETWEEN CAST('2000-01-27' AS DATE) AND (CAST('2000-01-27' AS DATE) + INTERVAL '90' DAY)) + AND ("d_date_sk" = "cs_sold_date_sk") + )) +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q33.sql b/presto-tpcds/src/main/resources/tpcds/queries/q33.sql new file mode 100644 index 0000000000000..2613b50107aa6 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q33.sql @@ -0,0 +1,90 @@ +-- database: presto_tpcds; groups: tpcds, quarantine; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +--- quarantined due https://github.com/prestodb/presto/issues/6991 +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 ('Electronics')) + )) + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 5) + 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 ('Electronics')) + )) + AND ("cs_item_sk" = "i_item_sk") + AND ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 5) + 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 ('Electronics')) + )) + AND ("ws_item_sk" = "i_item_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 5) + 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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q34.sql b/presto-tpcds/src/main/resources/tpcds/queries/q34.sql new file mode 100644 index 0000000000000..40a5f00e82f46 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q34.sql @@ -0,0 +1,36 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (CAST("household_demographics"."hd_dep_count" AS DECIMAL(7,2)) / "household_demographics"."hd_vehicle_count") ELSE null END) > DECIMAL '1.2') + AND ("date_dim"."d_year" IN (1999 , (1999 + 1) , (1999 + 2))) + AND ("store"."s_county" IN ('Williamson County' , 'Williamson County' , 'Williamson County' , 'Williamson County' , 'Williamson County' , 'Williamson County' , 'Williamson County' , 'Williamson County')) + GROUP BY "ss_ticket_number", "ss_customer_sk" +) dn +, customer +WHERE ("ss_customer_sk" = "c_customer_sk") + AND ("cnt" BETWEEN 15 AND 20) +ORDER BY "c_last_name" ASC, "c_first_name" ASC, "c_salutation" ASC, "c_preferred_cust_flag" DESC, "ss_ticket_number" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q35.sql b/presto-tpcds/src/main/resources/tpcds/queries/q35.sql new file mode 100644 index 0000000000000..4bae17ccbccdb --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q35.sql @@ -0,0 +1,59 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "ca_state" +, "cd_gender" +, "cd_marital_status" +, "cd_dep_count" +, "count"(*) "cnt1" +, "min"("cd_dep_count") +, "max"("cd_dep_count") +, "avg"("cd_dep_count") +, "cd_dep_employed_count" +, "count"(*) "cnt2" +, "min"("cd_dep_employed_count") +, "max"("cd_dep_employed_count") +, "avg"("cd_dep_employed_count") +, "cd_dep_college_count" +, "count"(*) "cnt3" +, "min"("cd_dep_college_count") +, "max"("cd_dep_college_count") +, "avg"("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" = 2002) + 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" = 2002) + 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" = 2002) + 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" ASC, "cd_gender" ASC, "cd_marital_status" ASC, "cd_dep_count" ASC, "cd_dep_employed_count" ASC, "cd_dep_college_count" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q36.sql b/presto-tpcds/src/main/resources/tpcds/queries/q36.sql new file mode 100644 index 0000000000000..b755e9597d5d7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q36.sql @@ -0,0 +1,28 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + ("sum"("ss_net_profit") / "sum"("ss_ext_sales_price")) "gross_margin" +, "i_category" +, "i_class" +, (GROUPING ("i_category") + GROUPING ("i_class")) "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) "rank_within_parent" +FROM + store_sales +, date_dim d1 +, item +, store +WHERE ("d1"."d_year" = 2001) + AND ("d1"."d_date_sk" = "ss_sold_date_sk") + AND ("i_item_sk" = "ss_item_sk") + AND ("s_store_sk" = "ss_store_sk") + AND ("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) ASC, "rank_within_parent" ASC, "i_category", "i_class" +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q37.sql b/presto-tpcds/src/main/resources/tpcds/queries/q37.sql new file mode 100644 index 0000000000000..841e026de4bd9 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q37.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "i_current_price" +FROM + item +, inventory +, date_dim +, catalog_sales +WHERE ("i_current_price" BETWEEN 68 AND (68 + 30)) + AND ("inv_item_sk" = "i_item_sk") + AND ("d_date_sk" = "inv_date_sk") + AND (CAST("d_date" AS DATE) BETWEEN CAST('2000-02-01' AS DATE) AND (CAST('2000-02-01' AS DATE) + INTERVAL '60' DAY)) + AND ("i_manufact_id" IN (677, 940, 694, 808)) + 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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q38.sql b/presto-tpcds/src/main/resources/tpcds/queries/q38.sql new file mode 100644 index 0000000000000..def8b9c9f4d34 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q38.sql @@ -0,0 +1,39 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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)) +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 1200 AND (1200 + 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 1200 AND (1200 + 11)) +) hot_cust +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q39_1.sql b/presto-tpcds/src/main/resources/tpcds/queries/q39_1.sql new file mode 100644 index 0000000000000..febd43dacc3e7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q39_1.sql @@ -0,0 +1,52 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 2001) + GROUP BY "w_warehouse_name", "w_warehouse_sk", "i_item_sk", "d_moy" + ) foo + WHERE ((CASE "mean" WHEN 0 THEN 0 ELSE ("stdev" / "mean") END) > 1) +) +SELECT + "inv1"."w_warehouse_sk" +, "inv1"."i_item_sk" +, "inv1"."d_moy" +, "inv1"."mean" +, "inv1"."cov" +, "inv2"."w_warehouse_sk" +, "inv2"."i_item_sk" +, "inv2"."d_moy" +, "inv2"."mean" +, "inv2"."cov" +FROM + inv inv1 +, inv inv2 +WHERE ("inv1"."i_item_sk" = "inv2"."i_item_sk") + AND ("inv1"."w_warehouse_sk" = "inv2"."w_warehouse_sk") + AND ("inv1"."d_moy" = 1) + AND ("inv2"."d_moy" = (1 + 1)) +ORDER BY "inv1"."w_warehouse_sk" ASC, "inv1"."i_item_sk" ASC, "inv1"."d_moy" ASC, "inv1"."mean" ASC, "inv1"."cov" ASC, "inv2"."d_moy" ASC, "inv2"."mean" ASC, "inv2"."cov" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q39_2.sql b/presto-tpcds/src/main/resources/tpcds/queries/q39_2.sql new file mode 100644 index 0000000000000..7d509598c1fa5 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q39_2.sql @@ -0,0 +1,53 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 2001) + GROUP BY "w_warehouse_name", "w_warehouse_sk", "i_item_sk", "d_moy" + ) foo + WHERE ((CASE "mean" WHEN 0 THEN 0 ELSE ("stdev" / "mean") END) > 1) +) +SELECT + "inv1"."w_warehouse_sk" +, "inv1"."i_item_sk" +, "inv1"."d_moy" +, "inv1"."mean" +, "inv1"."cov" +, "inv2"."w_warehouse_sk" +, "inv2"."i_item_sk" +, "inv2"."d_moy" +, "inv2"."mean" +, "inv2"."cov" +FROM + inv inv1 +, inv inv2 +WHERE ("inv1"."i_item_sk" = "inv2"."i_item_sk") + AND ("inv1"."w_warehouse_sk" = "inv2"."w_warehouse_sk") + AND ("inv1"."d_moy" = 1) + AND ("inv2"."d_moy" = (1 + 1)) + AND ("inv1"."cov" > DECIMAL '1.5') +ORDER BY "inv1"."w_warehouse_sk" ASC, "inv1"."i_item_sk" ASC, "inv1"."d_moy" ASC, "inv1"."mean" ASC, "inv1"."cov" ASC, "inv2"."d_moy" ASC, "inv2"."mean" ASC, "inv2"."cov" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q40.sql b/presto-tpcds/src/main/resources/tpcds/queries/q40.sql new file mode 100644 index 0000000000000..cbf46e3f1374e --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q40.sql @@ -0,0 +1,21 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "w_state" +, "i_item_id" +, "sum"((CASE WHEN (CAST("d_date" AS DATE) < CAST('2000-03-11' AS DATE)) THEN ("cs_sales_price" - COALESCE("cr_refunded_cash", 0)) ELSE 0 END)) "sales_before" +, "sum"((CASE WHEN (CAST("d_date" AS DATE) >= CAST('2000-03-11' AS DATE)) THEN ("cs_sales_price" - COALESCE("cr_refunded_cash", 0)) ELSE 0 END)) "sales_after" +FROM + (catalog_sales +LEFT 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 DECIMAL '0.99' AND DECIMAL '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 (CAST("d_date" AS DATE) BETWEEN (CAST('2000-03-11' AS DATE) - INTERVAL '30' DAY) AND (CAST('2000-03-11' AS DATE) + INTERVAL '30' DAY)) +GROUP BY "w_state", "i_item_id" +ORDER BY "w_state" ASC, "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q41.sql b/presto-tpcds/src/main/resources/tpcds/queries/q41.sql new file mode 100644 index 0000000000000..2ba48a331366c --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q41.sql @@ -0,0 +1,70 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT DISTINCT "i_product_name" +FROM + item i1 +WHERE ("i_manufact_id" BETWEEN 738 AND (738 + 40)) + AND (( + SELECT "count"(*) "item_cnt" + FROM + item + WHERE (("i_manufact" = "i1"."i_manufact") + AND ((("i_category" = 'Women ') + AND (("i_color" = 'powder ') + OR ("i_color" = 'khaki ')) + AND (("i_units" = 'Ounce ') + OR ("i_units" = 'Oz ')) + AND (("i_size" = 'medium ') + OR ("i_size" = 'extra large '))) + OR (("i_category" = 'Women ') + AND (("i_color" = 'brown ') + OR ("i_color" = 'honeydew ')) + AND (("i_units" = 'Bunch ') + OR ("i_units" = 'Ton ')) + AND (("i_size" = 'N/A ') + OR ("i_size" = 'small '))) + OR (("i_category" = 'Men ') + AND (("i_color" = 'floral ') + OR ("i_color" = 'deep ')) + AND (("i_units" = 'N/A ') + OR ("i_units" = 'Dozen ')) + AND (("i_size" = 'petite ') + OR ("i_size" = 'large '))) + OR (("i_category" = 'Men ') + AND (("i_color" = 'light ') + OR ("i_color" = 'cornflower ')) + AND (("i_units" = 'Box ') + OR ("i_units" = 'Pound ')) + AND (("i_size" = 'medium ') + OR ("i_size" = 'extra large '))))) + OR (("i_manufact" = "i1"."i_manufact") + AND ((("i_category" = 'Women ') + AND (("i_color" = 'midnight ') + OR ("i_color" = 'snow ')) + AND (("i_units" = 'Pallet ') + OR ("i_units" = 'Gross ')) + AND (("i_size" = 'medium ') + OR ("i_size" = 'extra large '))) + OR (("i_category" = 'Women ') + AND (("i_color" = 'cyan ') + OR ("i_color" = 'papaya ')) + AND (("i_units" = 'Cup ') + OR ("i_units" = 'Dram ')) + AND (("i_size" = 'N/A ') + OR ("i_size" = 'small '))) + OR (("i_category" = 'Men ') + AND (("i_color" = 'orange ') + OR ("i_color" = 'frosted ')) + AND (("i_units" = 'Each ') + OR ("i_units" = 'Tbl ')) + AND (("i_size" = 'petite ') + OR ("i_size" = 'large '))) + OR (("i_category" = 'Men ') + AND (("i_color" = 'forest ') + OR ("i_color" = 'ghost ')) + AND (("i_units" = 'Lb ') + OR ("i_units" = 'Bundle ')) + AND (("i_size" = 'medium ') + OR ("i_size" = 'extra large '))))) + ) > 0) +ORDER BY "i_product_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q42.sql b/presto-tpcds/src/main/resources/tpcds/queries/q42.sql new file mode 100644 index 0000000000000..35f9c50323965 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q42.sql @@ -0,0 +1,18 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 11) + AND ("dt"."d_year" = 2000) +GROUP BY "dt"."d_year", "item"."i_category_id", "item"."i_category" +ORDER BY "sum"("ss_ext_sales_price") DESC, "dt"."d_year" ASC, "item"."i_category_id" ASC, "item"."i_category" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q43.sql b/presto-tpcds/src/main/resources/tpcds/queries/q43.sql new file mode 100644 index 0000000000000..cc09b43d21aa2 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q43.sql @@ -0,0 +1,22 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 2000) +GROUP BY "s_store_name", "s_store_id" +ORDER BY "s_store_name" ASC, "s_store_id" ASC, "sun_sales" ASC, "mon_sales" ASC, "tue_sales" ASC, "wed_sales" ASC, "thu_sales" ASC, "fri_sales" ASC, "sat_sales" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q44.sql b/presto-tpcds/src/main/resources/tpcds/queries/q44.sql new file mode 100644 index 0000000000000..379409adb3e18 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q44.sql @@ -0,0 +1,69 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "asceding"."rnk" +, "i1"."i_product_name" "best_performing" +, "i2"."i_product_name" "worst_performing" +FROM + ( + SELECT * + FROM + ( + SELECT + "item_sk" + , "rank"() OVER (ORDER BY "rank_col" ASC) "rnk" + FROM + ( + SELECT + "ss_item_sk" "item_sk" + , "avg"("ss_net_profit") "rank_col" + FROM + store_sales ss1 + WHERE ("ss_store_sk" = 4) + GROUP BY "ss_item_sk" + HAVING ("avg"("ss_net_profit") > (DECIMAL '0.9' * ( + SELECT "avg"("ss_net_profit") "rank_col" + FROM + store_sales + WHERE ("ss_store_sk" = 4) + AND ("ss_addr_sk" IS NULL) + GROUP BY "ss_store_sk" + ))) + ) v1 + ) v11 + WHERE ("rnk" < 11) +) asceding +, ( + SELECT * + FROM + ( + SELECT + "item_sk" + , "rank"() OVER (ORDER BY "rank_col" DESC) "rnk" + FROM + ( + SELECT + "ss_item_sk" "item_sk" + , "avg"("ss_net_profit") "rank_col" + FROM + store_sales ss1 + WHERE ("ss_store_sk" = 4) + GROUP BY "ss_item_sk" + HAVING ("avg"("ss_net_profit") > (DECIMAL '0.9' * ( + SELECT "avg"("ss_net_profit") "rank_col" + FROM + store_sales + WHERE ("ss_store_sk" = 4) + AND ("ss_addr_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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q45.sql b/presto-tpcds/src/main/resources/tpcds/queries/q45.sql new file mode 100644 index 0000000000000..e944e087563ed --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q45.sql @@ -0,0 +1,27 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "ca_zip" +, "ca_city" +, "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" = 2001) +GROUP BY "ca_zip", "ca_city" +ORDER BY "ca_zip" ASC, "ca_city" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q46.sql b/presto-tpcds/src/main/resources/tpcds/queries/q46.sql new file mode 100644 index 0000000000000..2cc58988f773d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q46.sql @@ -0,0 +1,41 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 4) + 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 ('Fairview' , 'Midway' , 'Fairview' , 'Fairview' , 'Fairview')) + GROUP BY "ss_ticket_number", "ss_customer_sk", "ss_addr_sk", "ca_city" +) dn +, customer +, customer_address current_addr +WHERE ("ss_customer_sk" = "c_customer_sk") + AND ("customer"."c_current_addr_sk" = "current_addr"."ca_address_sk") + AND ("current_addr"."ca_city" <> "bought_city") +ORDER BY "c_last_name" ASC, "c_first_name" ASC, "ca_city" ASC, "bought_city" ASC, "ss_ticket_number" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q47.sql b/presto-tpcds/src/main/resources/tpcds/queries/q47.sql new file mode 100644 index 0000000000000..ddd038bf6e7a7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q47.sql @@ -0,0 +1,63 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC, "d_moy" ASC) "rn" + FROM + item + , store_sales + , date_dim + , store + WHERE ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("ss_store_sk" = "s_store_sk") + AND (("d_year" = 1999) + OR (("d_year" = (1999 - 1)) + AND ("d_moy" = 12)) + OR (("d_year" = (1999 + 1)) + AND ("d_moy" = 1))) + GROUP BY "i_category", "i_brand", "s_store_name", "s_company_name", "d_year", "d_moy" +) +, v2 AS ( + SELECT + "v1"."i_category" + , "v1"."i_brand" + , "v1"."s_store_name" + , "v1"."s_company_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"."s_store_name" = "v1_lag"."s_store_name") + AND ("v1"."s_store_name" = "v1_lead"."s_store_name") + AND ("v1"."s_company_name" = "v1_lag"."s_company_name") + AND ("v1"."s_company_name" = "v1_lead"."s_company_name") + AND ("v1"."rn" = ("v1_lag"."rn" + 1)) + AND ("v1"."rn" = ("v1_lead"."rn" - 1)) +) +SELECT * +FROM + v2 +WHERE ("d_year" = 1999) + AND ("avg_monthly_sales" > 0) + AND ((CASE WHEN ("avg_monthly_sales" > 0) THEN ("abs"(("sum_sales" - "avg_monthly_sales")) / "avg_monthly_sales") ELSE null END) > DECIMAL '0.1') +ORDER BY ("sum_sales" - "avg_monthly_sales") ASC, 3 ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q48.sql b/presto-tpcds/src/main/resources/tpcds/queries/q48.sql new file mode 100644 index 0000000000000..584c31e941a20 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q48.sql @@ -0,0 +1,35 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 2000) + AND ((("cd_demo_sk" = "ss_cdemo_sk") + AND ("cd_marital_status" = 'M') + AND ("cd_education_status" = '4 yr Degree ') + AND ("ss_sales_price" BETWEEN DECIMAL '100.00' AND DECIMAL '150.00')) + OR (("cd_demo_sk" = "ss_cdemo_sk") + AND ("cd_marital_status" = 'D') + AND ("cd_education_status" = '2 yr Degree ') + AND ("ss_sales_price" BETWEEN DECIMAL '50.00' AND DECIMAL '100.00')) + OR (("cd_demo_sk" = "ss_cdemo_sk") + AND ("cd_marital_status" = 'S') + AND ("cd_education_status" = 'College ') + AND ("ss_sales_price" BETWEEN DECIMAL '150.00' AND DECIMAL '200.00'))) + AND ((("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('CO' , 'OH' , 'TX')) + AND ("ss_net_profit" BETWEEN 0 AND 2000)) + OR (("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('OR' , 'MN' , 'KY')) + AND ("ss_net_profit" BETWEEN 150 AND 3000)) + OR (("ss_addr_sk" = "ca_address_sk") + AND ("ca_country" = 'United States') + AND ("ca_state" IN ('VA' , 'CA' , 'MS')) + AND ("ss_net_profit" BETWEEN 50 AND 25000))) diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q49.sql b/presto-tpcds/src/main/resources/tpcds/queries/q49.sql new file mode 100644 index 0000000000000..de2c4cadfc806 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q49.sql @@ -0,0 +1,114 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + 'web' "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" ASC) "return_rank" + , "rank"() OVER (ORDER BY "currency_ratio" ASC) "currency_rank" + FROM + ( + SELECT + "ws"."ws_item_sk" "item" + , (CAST("sum"(COALESCE("wr"."wr_return_quantity", 0)) AS DECIMAL(15,4)) / CAST("sum"(COALESCE("ws"."ws_quantity", 0)) AS DECIMAL(15,4))) "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))) "currency_ratio" + FROM + (web_sales ws + LEFT 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" = 2001) + 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' "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" ASC) "return_rank" + , "rank"() OVER (ORDER BY "currency_ratio" ASC) "currency_rank" + FROM + ( + SELECT + "cs"."cs_item_sk" "item" + , (CAST("sum"(COALESCE("cr"."cr_return_quantity", 0)) AS DECIMAL(15,4)) / CAST("sum"(COALESCE("cs"."cs_quantity", 0)) AS DECIMAL(15,4))) "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))) "currency_ratio" + FROM + (catalog_sales cs + LEFT 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" = 2001) + 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' "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" ASC) "return_rank" + , "rank"() OVER (ORDER BY "currency_ratio" ASC) "currency_rank" + FROM + ( + SELECT + "sts"."ss_item_sk" "item" + , (CAST("sum"(COALESCE("sr"."sr_return_quantity", 0)) AS DECIMAL(15,4)) / CAST("sum"(COALESCE("sts"."ss_quantity", 0)) AS DECIMAL(15,4))) "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))) "currency_ratio" + FROM + (store_sales sts + LEFT 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" = 2001) + 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 ASC, 4 ASC, 5 ASC, 2 ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q50.sql b/presto-tpcds/src/main/resources/tpcds/queries/q50.sql new file mode 100644 index 0000000000000..2a29ccb30d052 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q50.sql @@ -0,0 +1,37 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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)) "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)) "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)) "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)) "91-120 days" +, "sum"((CASE WHEN (("sr_returned_date_sk" - "ss_sold_date_sk") > 120) THEN 1 ELSE 0 END)) ">120 days" +FROM + store_sales +, store_returns +, store +, date_dim d1 +, date_dim d2 +WHERE ("d2"."d_year" = 2001) + AND ("d2"."d_moy" = 8) + 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" ASC, "s_company_id" ASC, "s_street_number" ASC, "s_street_name" ASC, "s_street_type" ASC, "s_suite_number" ASC, "s_city" ASC, "s_county" ASC, "s_state" ASC, "s_zip" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q51.sql b/presto-tpcds/src/main/resources/tpcds/queries/q51.sql new file mode 100644 index 0000000000000..0d905b8fda8fc --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q51.sql @@ -0,0 +1,54 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC 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 1200 AND (1200 + 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" ASC 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 1200 AND (1200 + 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" ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) "web_cumulative" + , "max"("store_sales") OVER (PARTITION BY "item_sk" ORDER BY "d_date" ASC 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 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" ASC, "d_date" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q52.sql b/presto-tpcds/src/main/resources/tpcds/queries/q52.sql new file mode 100644 index 0000000000000..316f7f849f7b6 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q52.sql @@ -0,0 +1,18 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "dt"."d_year" +, "item"."i_brand_id" "brand_id" +, "item"."i_brand" "brand" +, "sum"("ss_ext_sales_price") "ext_price" +FROM + date_dim dt +, store_sales +, item +WHERE ("dt"."d_date_sk" = "store_sales"."ss_sold_date_sk") + AND ("store_sales"."ss_item_sk" = "item"."i_item_sk") + AND ("item"."i_manager_id" = 1) + AND ("dt"."d_moy" = 11) + AND ("dt"."d_year" = 2000) +GROUP BY "dt"."d_year", "item"."i_brand", "item"."i_brand_id" +ORDER BY "dt"."d_year" ASC, "ext_price" DESC, "brand_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q53.sql b/presto-tpcds/src/main/resources/tpcds/queries/q53.sql new file mode 100644 index 0000000000000..5e75e14c24d74 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q53.sql @@ -0,0 +1,28 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (1200 , (1200 + 1) , (1200 + 2) , (1200 + 3) , (1200 + 4) , (1200 + 5) , (1200 + 6) , (1200 + 7) , (1200 + 8) , (1200 + 9) , (1200 + 10) , (1200 + 11))) + AND ((("i_category" IN ('Books ' , 'Children ' , 'Electronics ')) + AND ("i_class" IN ('personal ' , 'portable ' , 'reference ' , 'self-help ')) + AND ("i_brand" IN ('scholaramalgamalg #14 ' , 'scholaramalgamalg #7 ' , 'exportiunivamalg #9 ' , 'scholaramalgamalg #9 '))) + OR (("i_category" IN ('Women ' , 'Music ' , 'Men ')) + AND ("i_class" IN ('accessories ' , 'classical ' , 'fragrances ' , 'pants ')) + AND ("i_brand" IN ('amalgimporto #1 ' , 'edu packscholar #1 ' , 'exportiimporto #1 ' , 'importoamalg #1 ')))) + GROUP BY "i_manufact_id", "d_qoy" +) tmp1 +WHERE ((CASE WHEN ("avg_quarterly_sales" > 0) THEN ("abs"((CAST("sum_sales" AS DECIMAL(38,4)) - "avg_quarterly_sales")) / "avg_quarterly_sales") ELSE null END) > DECIMAL '0.1') +ORDER BY "avg_quarterly_sales" ASC, "sum_sales" ASC, "i_manufact_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q54.sql b/presto-tpcds/src/main/resources/tpcds/queries/q54.sql new file mode 100644 index 0000000000000..27d25e897a76d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q54.sql @@ -0,0 +1,76 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 'Women ') + AND ("i_class" = 'maternity ') + AND ("c_customer_sk" = "cs_or_ws_sales"."customer_sk") + AND ("d_moy" = 12) + AND ("d_year" = 1998) +) +, my_revenue AS ( + SELECT + "c_customer_sk" + , "sum"("ss_ext_sales_price") "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" = 1998) + AND ("d_moy" = 12) + ) AND ( + SELECT DISTINCT ("d_month_seq" + 3) + FROM + date_dim + WHERE ("d_year" = 1998) + AND ("d_moy" = 12) + )) + GROUP BY "c_customer_sk" +) +, segments AS ( + SELECT CAST(("revenue" / 50) AS INTEGER) "segment" + FROM + my_revenue +) +SELECT + "segment" +, "count"(*) "num_customers" +, ("segment" * 50) "segment_base" +FROM + segments +GROUP BY "segment" +ORDER BY "segment" ASC, "num_customers" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q55.sql b/presto-tpcds/src/main/resources/tpcds/queries/q55.sql new file mode 100644 index 0000000000000..a2168d2f8e237 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q55.sql @@ -0,0 +1,17 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 28) + AND ("d_moy" = 11) + AND ("d_year" = 1999) +GROUP BY "i_brand", "i_brand_id" +ORDER BY "ext_price" DESC, "i_brand_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q56.sql b/presto-tpcds/src/main/resources/tpcds/queries/q56.sql new file mode 100644 index 0000000000000..a468391607660 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q56.sql @@ -0,0 +1,89 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 ('slate ' , 'blanched ' , 'burnished ')) + )) + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" = 2001) + AND ("d_moy" = 2) + AND ("ss_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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 ('slate ' , 'blanched ' , 'burnished ')) + )) + AND ("cs_item_sk" = "i_item_sk") + AND ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" = 2001) + AND ("d_moy" = 2) + AND ("cs_bill_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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 ('slate ' , 'blanched ' , 'burnished ')) + )) + AND ("ws_item_sk" = "i_item_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" = 2001) + AND ("d_moy" = 2) + AND ("ws_bill_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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" ASC, "i_item_id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q57.sql b/presto-tpcds/src/main/resources/tpcds/queries/q57.sql new file mode 100644 index 0000000000000..7df1ce995a507 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q57.sql @@ -0,0 +1,59 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC, "d_moy" ASC) "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" = 1999) + OR (("d_year" = (1999 - 1)) + AND ("d_moy" = 12)) + OR (("d_year" = (1999 + 1)) + AND ("d_moy" = 1))) + GROUP BY "i_category", "i_brand", "cc_name", "d_year", "d_moy" +) +, v2 AS ( + SELECT + "v1"."i_category" + , "v1"."i_brand" + , "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" = 1999) + AND ("avg_monthly_sales" > 0) + AND ((CASE WHEN ("avg_monthly_sales" > 0) THEN ("abs"(("sum_sales" - "avg_monthly_sales")) / "avg_monthly_sales") ELSE null END) > DECIMAL '0.1') +ORDER BY ("sum_sales" - "avg_monthly_sales") ASC, 3 ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q58.sql b/presto-tpcds/src/main/resources/tpcds/queries/q58.sql new file mode 100644 index 0000000000000..7821f8c1d268b --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q58.sql @@ -0,0 +1,94 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = CAST('2000-01-03' AS DATE)) + )) + )) + 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" = CAST('2000-01-03' AS DATE)) + )) + )) + 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" = CAST('2000-01-03' AS DATE)) + )) + )) + AND ("ws_sold_date_sk" = "d_date_sk") + GROUP BY "i_item_id" +) +SELECT + "ss_items"."item_id" +, "ss_item_rev" +, CAST(((("ss_item_rev" / ((CAST("ss_item_rev" AS DECIMAL(12,7)) + "cs_item_rev") + "ws_item_rev")) / 3) * 100) AS DECIMAL(7,2)) "ss_dev" +, "cs_item_rev" +, CAST(((("cs_item_rev" / ((CAST("ss_item_rev" AS DECIMAL(12,7)) + "cs_item_rev") + "ws_item_rev")) / 3) * 100) AS DECIMAL(7,2)) "cs_dev" +, "ws_item_rev" +, CAST(((("ws_item_rev" / ((CAST("ss_item_rev" AS DECIMAL(12,7)) + "cs_item_rev") + "ws_item_rev")) / 3) * 100) AS DECIMAL(7,2)) "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 (DECIMAL '0.9' * "cs_item_rev") AND (DECIMAL '1.1' * "cs_item_rev")) + AND ("ss_item_rev" BETWEEN (DECIMAL '0.9' * "ws_item_rev") AND (DECIMAL '1.1' * "ws_item_rev")) + AND ("cs_item_rev" BETWEEN (DECIMAL '0.9' * "ss_item_rev") AND (DECIMAL '1.1' * "ss_item_rev")) + AND ("cs_item_rev" BETWEEN (DECIMAL '0.9' * "ws_item_rev") AND (DECIMAL '1.1' * "ws_item_rev")) + AND ("ws_item_rev" BETWEEN (DECIMAL '0.9' * "ss_item_rev") AND (DECIMAL '1.1' * "ss_item_rev")) + AND ("ws_item_rev" BETWEEN (DECIMAL '0.9' * "cs_item_rev") AND (DECIMAL '1.1' * "cs_item_rev")) +ORDER BY "ss_items"."item_id" ASC, "ss_item_rev" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q59.sql b/presto-tpcds/src/main/resources/tpcds/queries/q59.sql new file mode 100644 index 0000000000000..d2fe49471d286 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q59.sql @@ -0,0 +1,75 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 1212 AND (1212 + 11)) +) y +, ( + SELECT + "s_store_name" "s_store_name2" + , "wss"."d_week_seq" "d_week_seq2" + , "s_store_id" "s_store_id2" + , "sun_sales" "sun_sales2" + , "mon_sales" "mon_sales2" + , "tue_sales" "tue_sales2" + , "wed_sales" "wed_sales2" + , "thu_sales" "thu_sales2" + , "fri_sales" "fri_sales2" + , "sat_sales" "sat_sales2" + FROM + wss + , store + , date_dim d + WHERE ("d"."d_week_seq" = "wss"."d_week_seq") + AND ("ss_store_sk" = "s_store_sk") + AND ("d_month_seq" BETWEEN (1212 + 12) AND (1212 + 23)) +) x +WHERE ("s_store_id1" = "s_store_id2") + AND ("d_week_seq1" = ("d_week_seq2" - 52)) +ORDER BY "s_store_name1" ASC, "s_store_id1" ASC, "d_week_seq1" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q60.sql b/presto-tpcds/src/main/resources/tpcds/queries/q60.sql new file mode 100644 index 0000000000000..dea933caedcb9 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q60.sql @@ -0,0 +1,89 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 ('Music ')) + )) + AND ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 9) + AND ("ss_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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 ('Music ')) + )) + AND ("cs_item_sk" = "i_item_sk") + AND ("cs_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 9) + AND ("cs_bill_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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 ('Music ')) + )) + AND ("ws_item_sk" = "i_item_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" = 1998) + AND ("d_moy" = 9) + AND ("ws_bill_addr_sk" = "ca_address_sk") + AND ("ca_gmt_offset" = -5) + 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" ASC, "total_sales" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q61.sql b/presto-tpcds/src/main/resources/tpcds/queries/q61.sql new file mode 100644 index 0000000000000..88d82f385b014 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q61.sql @@ -0,0 +1,53 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = -5) + AND ("i_category" = 'Jewelry ') + AND (("p_channel_dmail" = 'Y') + OR ("p_channel_email" = 'Y') + OR ("p_channel_tv" = 'Y')) + AND ("s_gmt_offset" = -5) + AND ("d_year" = 1998) + 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" = -5) + AND ("i_category" = 'Jewelry ') + AND ("s_gmt_offset" = -5) + AND ("d_year" = 1998) + AND ("d_moy" = 11) +) all_sales +ORDER BY "promotions" ASC, "total" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q62.sql b/presto-tpcds/src/main/resources/tpcds/queries/q62.sql new file mode 100644 index 0000000000000..93b8f63c42566 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q62.sql @@ -0,0 +1,27 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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)) "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)) "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)) "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)) "91-120 days" +, "sum"((CASE WHEN (("ws_ship_date_sk" - "ws_sold_date_sk") > 120) THEN 1 ELSE 0 END)) ">120 days" +FROM + web_sales +, warehouse +, ship_mode +, web_site +, date_dim +WHERE ("d_month_seq" BETWEEN 1200 AND (1200 + 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) ASC, "sm_type" ASC, "web_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q63.sql b/presto-tpcds/src/main/resources/tpcds/queries/q63.sql new file mode 100644 index 0000000000000..cf5656f45bc51 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q63.sql @@ -0,0 +1,28 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT * +FROM + ( + SELECT + "i_manager_id" + , "sum"("ss_sales_price") "sum_sales" + , "avg"("sum"("ss_sales_price")) OVER (PARTITION BY "i_manager_id") "avg_monthly_sales" + FROM + item + , store_sales + , date_dim + , store + WHERE ("ss_item_sk" = "i_item_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("ss_store_sk" = "s_store_sk") + AND ("d_month_seq" IN (1200 , (1200 + 1) , (1200 + 2) , (1200 + 3) , (1200 + 4) , (1200 + 5) , (1200 + 6) , (1200 + 7) , (1200 + 8) , (1200 + 9) , (1200 + 10) , (1200 + 11))) + AND ((("i_category" IN ('Books ' , 'Children ' , 'Electronics ')) + AND ("i_class" IN ('personal ' , 'portable ' , 'refernece ' , '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) > DECIMAL '0.1') +ORDER BY "i_manager_id" ASC, "avg_monthly_sales" ASC, "sum_sales" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q64.sql b/presto-tpcds/src/main/resources/tpcds/queries/q64.sql new file mode 100644 index 0000000000000..fe5f33200c250 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q64.sql @@ -0,0 +1,111 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + cs_ui AS ( + SELECT + "cs_item_sk" + , "sum"("cs_ext_list_price") "sale" + , "sum"((("cr_refunded_cash" + "cr_reversed_charge") + "cr_store_credit")) "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" "syear" + , "d2"."d_year" "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 ('purple ' , 'burlywood ' , 'indian ' , 'spring ' , 'floral ' , 'medium ')) + AND ("i_current_price" BETWEEN 64 AND (64 + 10)) + AND ("i_current_price" BETWEEN (64 + 1) AND (64 + 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" "s11" +, "cs1"."s2" "s21" +, "cs1"."s3" "s31" +, "cs2"."s1" "s12" +, "cs2"."s2" "s22" +, "cs2"."s3" "s32" +, "cs2"."syear" +, "cs2"."cnt" +FROM + cross_sales cs1 +, cross_sales cs2 +WHERE ("cs1"."item_sk" = "cs2"."item_sk") + AND ("cs1"."syear" = 1999) + AND ("cs2"."syear" = (1999 + 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" ASC, "cs1"."store_name" ASC, "cs2"."cnt" ASC, 14, 15, 16, 17, 18 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q65.sql b/presto-tpcds/src/main/resources/tpcds/queries/q65.sql new file mode 100644 index 0000000000000..124f8ce1d9746 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q65.sql @@ -0,0 +1,48 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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") "ave" + FROM + ( + SELECT + "ss_store_sk" + , "ss_item_sk" + , "sum"("ss_sales_price") "revenue" + FROM + store_sales + , date_dim + WHERE ("ss_sold_date_sk" = "d_date_sk") + AND ("d_month_seq" BETWEEN 1176 AND (1176 + 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") "revenue" + FROM + store_sales + , date_dim + WHERE ("ss_sold_date_sk" = "d_date_sk") + AND ("d_month_seq" BETWEEN 1176 AND (1176 + 11)) + GROUP BY "ss_store_sk", "ss_item_sk" +) sc +WHERE ("sb"."ss_store_sk" = "sc"."ss_store_sk") + AND ("sc"."revenue" <= (DECIMAL '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" ASC, "i_item_desc" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q66.sql b/presto-tpcds/src/main/resources/tpcds/queries/q66.sql new file mode 100644 index 0000000000000..2ef290b449fb2 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q66.sql @@ -0,0 +1,147 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "w_warehouse_name" +, "w_warehouse_sq_ft" +, "w_city" +, "w_county" +, "w_state" +, "w_country" +, "ship_carriers" +, "year" +, "sum"("jan_sales") "jan_sales" +, "sum"("feb_sales") "feb_sales" +, "sum"("mar_sales") "mar_sales" +, "sum"("apr_sales") "apr_sales" +, "sum"("may_sales") "may_sales" +, "sum"("jun_sales") "jun_sales" +, "sum"("jul_sales") "jul_sales" +, "sum"("aug_sales") "aug_sales" +, "sum"("sep_sales") "sep_sales" +, "sum"("oct_sales") "oct_sales" +, "sum"("nov_sales") "nov_sales" +, "sum"("dec_sales") "dec_sales" +, "sum"(("jan_sales" / "w_warehouse_sq_ft")) "jan_sales_per_sq_foot" +, "sum"(("feb_sales" / "w_warehouse_sq_ft")) "feb_sales_per_sq_foot" +, "sum"(("mar_sales" / "w_warehouse_sq_ft")) "mar_sales_per_sq_foot" +, "sum"(("apr_sales" / "w_warehouse_sq_ft")) "apr_sales_per_sq_foot" +, "sum"(("may_sales" / "w_warehouse_sq_ft")) "may_sales_per_sq_foot" +, "sum"(("jun_sales" / "w_warehouse_sq_ft")) "jun_sales_per_sq_foot" +, "sum"(("jul_sales" / "w_warehouse_sq_ft")) "jul_sales_per_sq_foot" +, "sum"(("aug_sales" / "w_warehouse_sq_ft")) "aug_sales_per_sq_foot" +, "sum"(("sep_sales" / "w_warehouse_sq_ft")) "sep_sales_per_sq_foot" +, "sum"(("oct_sales" / "w_warehouse_sq_ft")) "oct_sales_per_sq_foot" +, "sum"(("nov_sales" / "w_warehouse_sq_ft")) "nov_sales_per_sq_foot" +, "sum"(("dec_sales" / "w_warehouse_sq_ft")) "dec_sales_per_sq_foot" +, "sum"("jan_net") "jan_net" +, "sum"("feb_net") "feb_net" +, "sum"("mar_net") "mar_net" +, "sum"("apr_net") "apr_net" +, "sum"("may_net") "may_net" +, "sum"("jun_net") "jun_net" +, "sum"("jul_net") "jul_net" +, "sum"("aug_net") "aug_net" +, "sum"("sep_net") "sep_net" +, "sum"("oct_net") "oct_net" +, "sum"("nov_net") "nov_net" +, "sum"("dec_net") "dec_net" +FROM +( + SELECT + "w_warehouse_name" + , "w_warehouse_sq_ft" + , "w_city" + , "w_county" + , "w_state" + , "w_country" + , "concat"("concat"('DHL', ','), 'BARIAN') "ship_carriers" + , "d_year" "YEAR" + , "sum"((CASE WHEN ("d_moy" = 1) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "jan_sales" + , "sum"((CASE WHEN ("d_moy" = 2) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "feb_sales" + , "sum"((CASE WHEN ("d_moy" = 3) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "mar_sales" + , "sum"((CASE WHEN ("d_moy" = 4) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "apr_sales" + , "sum"((CASE WHEN ("d_moy" = 5) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "may_sales" + , "sum"((CASE WHEN ("d_moy" = 6) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "jun_sales" + , "sum"((CASE WHEN ("d_moy" = 7) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "jul_sales" + , "sum"((CASE WHEN ("d_moy" = 8) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "aug_sales" + , "sum"((CASE WHEN ("d_moy" = 9) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "sep_sales" + , "sum"((CASE WHEN ("d_moy" = 10) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "oct_sales" + , "sum"((CASE WHEN ("d_moy" = 11) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "nov_sales" + , "sum"((CASE WHEN ("d_moy" = 12) THEN ("ws_ext_sales_price" * "ws_quantity") ELSE 0 END)) "dec_sales" + , "sum"((CASE WHEN ("d_moy" = 1) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "jan_net" + , "sum"((CASE WHEN ("d_moy" = 2) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "feb_net" + , "sum"((CASE WHEN ("d_moy" = 3) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "mar_net" + , "sum"((CASE WHEN ("d_moy" = 4) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "apr_net" + , "sum"((CASE WHEN ("d_moy" = 5) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "may_net" + , "sum"((CASE WHEN ("d_moy" = 6) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "jun_net" + , "sum"((CASE WHEN ("d_moy" = 7) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "jul_net" + , "sum"((CASE WHEN ("d_moy" = 8) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "aug_net" + , "sum"((CASE WHEN ("d_moy" = 9) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "sep_net" + , "sum"((CASE WHEN ("d_moy" = 10) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "oct_net" + , "sum"((CASE WHEN ("d_moy" = 11) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "nov_net" + , "sum"((CASE WHEN ("d_moy" = 12) THEN ("ws_net_paid" * "ws_quantity") ELSE 0 END)) "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" = 2001) + AND ("t_time" BETWEEN 30838 AND (30838 + 28800)) + AND ("sm_carrier" IN ('DHL ' , 'BARIAN ')) + 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" + , "concat"("concat"('DHL', ','), 'BARIAN') "ship_carriers" + , "d_year" "YEAR" + , "sum"((CASE WHEN ("d_moy" = 1) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "jan_sales" + , "sum"((CASE WHEN ("d_moy" = 2) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "feb_sales" + , "sum"((CASE WHEN ("d_moy" = 3) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "mar_sales" + , "sum"((CASE WHEN ("d_moy" = 4) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "apr_sales" + , "sum"((CASE WHEN ("d_moy" = 5) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "may_sales" + , "sum"((CASE WHEN ("d_moy" = 6) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "jun_sales" + , "sum"((CASE WHEN ("d_moy" = 7) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "jul_sales" + , "sum"((CASE WHEN ("d_moy" = 8) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "aug_sales" + , "sum"((CASE WHEN ("d_moy" = 9) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "sep_sales" + , "sum"((CASE WHEN ("d_moy" = 10) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "oct_sales" + , "sum"((CASE WHEN ("d_moy" = 11) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "nov_sales" + , "sum"((CASE WHEN ("d_moy" = 12) THEN ("cs_sales_price" * "cs_quantity") ELSE 0 END)) "dec_sales" + , "sum"((CASE WHEN ("d_moy" = 1) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "jan_net" + , "sum"((CASE WHEN ("d_moy" = 2) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "feb_net" + , "sum"((CASE WHEN ("d_moy" = 3) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "mar_net" + , "sum"((CASE WHEN ("d_moy" = 4) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "apr_net" + , "sum"((CASE WHEN ("d_moy" = 5) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "may_net" + , "sum"((CASE WHEN ("d_moy" = 6) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "jun_net" + , "sum"((CASE WHEN ("d_moy" = 7) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "jul_net" + , "sum"((CASE WHEN ("d_moy" = 8) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "aug_net" + , "sum"((CASE WHEN ("d_moy" = 9) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "sep_net" + , "sum"((CASE WHEN ("d_moy" = 10) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "oct_net" + , "sum"((CASE WHEN ("d_moy" = 11) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "nov_net" + , "sum"((CASE WHEN ("d_moy" = 12) THEN ("cs_net_paid_inc_tax" * "cs_quantity") ELSE 0 END)) "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" = 2001) + AND ("t_time" BETWEEN 30838 AND (30838 + 28800)) + AND ("sm_carrier" IN ('DHL ' , 'BARIAN ')) + 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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q67.sql b/presto-tpcds/src/main/resources/tpcds/queries/q67.sql new file mode 100644 index 0000000000000..a8d8b8cd888c8 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q67.sql @@ -0,0 +1,42 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 1200 AND (1200 + 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" ASC, "i_class" ASC, "i_brand" ASC, "i_product_name" ASC, "d_year" ASC, "d_qoy" ASC, "d_moy" ASC, "s_store_id" ASC, "sumsales" ASC, "rk" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q68.sql b/presto-tpcds/src/main/resources/tpcds/queries/q68.sql new file mode 100644 index 0000000000000..5db9637f64076 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q68.sql @@ -0,0 +1,43 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" = 4) + 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" ASC, "ss_ticket_number" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q69.sql b/presto-tpcds/src/main/resources/tpcds/queries/q69.sql new file mode 100644 index 0000000000000..faa340c71109c --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q69.sql @@ -0,0 +1,50 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 ('KY', 'GA', 'NM')) + AND ("cd_demo_sk" = "c"."c_current_cdemo_sk") + AND (EXISTS ( + SELECT * + FROM + store_sales + , date_dim + WHERE ("c"."c_customer_sk" = "ss_customer_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" = 2001) + AND ("d_moy" BETWEEN 4 AND (4 + 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" = 2001) + AND ("d_moy" BETWEEN 4 AND (4 + 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" = 2001) + AND ("d_moy" BETWEEN 4 AND (4 + 2)) +))) +GROUP BY "cd_gender", "cd_marital_status", "cd_education_status", "cd_purchase_estimate", "cd_credit_rating" +ORDER BY "cd_gender" ASC, "cd_marital_status" ASC, "cd_education_status" ASC, "cd_purchase_estimate" ASC, "cd_credit_rating" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q70.sql b/presto-tpcds/src/main/resources/tpcds/queries/q70.sql new file mode 100644 index 0000000000000..2d7b75ad732c0 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q70.sql @@ -0,0 +1,35 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "sum"("ss_net_profit") "total_sum" +, "s_state" +, "s_county" +, (GROUPING ("s_state") + GROUPING ("s_county")) "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) "rank_within_parent" +FROM + store_sales +, date_dim d1 +, store +WHERE ("d1"."d_month_seq" BETWEEN 1200 AND (1200 + 11)) + AND ("d1"."d_date_sk" = "ss_sold_date_sk") + AND ("s_store_sk" = "ss_store_sk") + AND ("s_state" IN ( + SELECT "s_state" + FROM + ( + SELECT + "s_state" "s_state" + , "rank"() OVER (PARTITION BY "s_state" ORDER BY "sum"("ss_net_profit") DESC) "ranking" + FROM + store_sales + , store + , date_dim + WHERE ("d_month_seq" BETWEEN 1200 AND (1200 + 11)) + AND ("d_date_sk" = "ss_sold_date_sk") + AND ("s_store_sk" = "ss_store_sk") + GROUP BY "s_state" + ) tmp1 + WHERE ("ranking" <= 5) +)) +GROUP BY ROLLUP (s_state, s_county) +ORDER BY "lochierarchy" DESC, (CASE WHEN ("lochierarchy" = 0) THEN "s_state" END) ASC, "rank_within_parent" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q71.sql b/presto-tpcds/src/main/resources/tpcds/queries/q71.sql new file mode 100644 index 0000000000000..62eb32c5460ea --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q71.sql @@ -0,0 +1,52 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" "ext_price" + , "ws_sold_date_sk" "sold_date_sk" + , "ws_item_sk" "sold_item_sk" + , "ws_sold_time_sk" "time_sk" + FROM + web_sales + , date_dim + WHERE ("d_date_sk" = "ws_sold_date_sk") + AND ("d_moy" = 11) + AND ("d_year" = 1999) +UNION ALL SELECT + "cs_ext_sales_price" "ext_price" + , "cs_sold_date_sk" "sold_date_sk" + , "cs_item_sk" "sold_item_sk" + , "cs_sold_time_sk" "time_sk" + FROM + catalog_sales + , date_dim + WHERE ("d_date_sk" = "cs_sold_date_sk") + AND ("d_moy" = 11) + AND ("d_year" = 1999) +UNION ALL SELECT + "ss_ext_sales_price" "ext_price" + , "ss_sold_date_sk" "sold_date_sk" + , "ss_item_sk" "sold_item_sk" + , "ss_sold_time_sk" "time_sk" + FROM + store_sales + , date_dim + WHERE ("d_date_sk" = "ss_sold_date_sk") + AND ("d_moy" = 11) + AND ("d_year" = 1999) +) 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" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q72.sql b/presto-tpcds/src/main/resources/tpcds/queries/q72.sql new file mode 100644 index 0000000000000..da44aa90eb653 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q72.sql @@ -0,0 +1,30 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 +INNER JOIN inventory ON ("cs_item_sk" = "inv_item_sk")) +INNER JOIN warehouse ON ("w_warehouse_sk" = "inv_warehouse_sk")) +INNER JOIN item ON ("i_item_sk" = "cs_item_sk")) +INNER JOIN customer_demographics ON ("cs_bill_cdemo_sk" = "cd_demo_sk")) +INNER JOIN household_demographics ON ("cs_bill_hdemo_sk" = "hd_demo_sk")) +INNER JOIN date_dim d1 ON ("cs_sold_date_sk" = "d1"."d_date_sk")) +INNER JOIN date_dim d2 ON ("inv_date_sk" = "d2"."d_date_sk")) +INNER JOIN date_dim d3 ON ("cs_ship_date_sk" = "d3"."d_date_sk")) +LEFT JOIN promotion ON ("cs_promo_sk" = "p_promo_sk")) +LEFT JOIN catalog_returns ON ("cr_item_sk" = "cs_item_sk") + AND ("cr_order_number" = "cs_order_number")) +WHERE ("d1"."d_week_seq" = "d2"."d_week_seq") + AND ("inv_quantity_on_hand" < "cs_quantity") + AND ("d3"."d_date" > ("d1"."d_date" + INTERVAL '5' DAY)) + AND ("hd_buy_potential" = '>10000 ') + AND ("d1"."d_year" = 1999) + AND ("cd_marital_status" = 'D') +GROUP BY "i_item_desc", "w_warehouse_name", "d1"."d_week_seq" +ORDER BY "total_cnt" DESC, "i_item_desc" ASC, "w_warehouse_name" ASC, "d1"."d_week_seq" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q73.sql b/presto-tpcds/src/main/resources/tpcds/queries/q73.sql new file mode 100644 index 0000000000000..a6df08344d339 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q73.sql @@ -0,0 +1,35 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (CAST("household_demographics"."hd_dep_count" AS DECIMAL(7,2)) / "household_demographics"."hd_vehicle_count") ELSE null END) > 1) + AND ("date_dim"."d_year" IN (1999 , (1999 + 1) , (1999 + 2))) + AND ("store"."s_county" IN ('Williamson County' , 'Franklin Parish' , 'Bronx County' , 'Orange 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/presto-tpcds/src/main/resources/tpcds/queries/q74.sql b/presto-tpcds/src/main/resources/tpcds/queries/q74.sql new file mode 100644 index 0000000000000..7f50f169df758 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q74.sql @@ -0,0 +1,59 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + year_total AS ( + SELECT + "c_customer_id" "customer_id" + , "c_first_name" "customer_first_name" + , "c_last_name" "customer_last_name" + , "d_year" "YEAR" + , "sum"("ss_net_paid") "year_total" + , 's' "sale_type" + FROM + customer + , store_sales + , date_dim + WHERE ("c_customer_sk" = "ss_customer_sk") + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("d_year" IN (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" "YEAR" + , "sum"("ws_net_paid") "year_total" + , 'w' "sale_type" + FROM + customer + , web_sales + , date_dim + WHERE ("c_customer_sk" = "ws_bill_customer_sk") + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("d_year" IN (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 1 ASC, 1 ASC, 1 ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q75.sql b/presto-tpcds/src/main/resources/tpcds/queries/q75.sql new file mode 100644 index 0000000000000..72d71c51d79ee --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q75.sql @@ -0,0 +1,84 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + all_sales AS ( + SELECT + "d_year" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "i_manufact_id" + , "sum"("sales_cnt") "sales_cnt" + , "sum"("sales_amt") "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)) "sales_cnt" + , ("cs_ext_sales_price" - COALESCE("cr_return_amount", DECIMAL '0.0')) "sales_amt" + FROM + (((catalog_sales + INNER JOIN item ON ("i_item_sk" = "cs_item_sk")) + INNER 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" = 'Books ') +UNION SELECT + "d_year" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "i_manufact_id" + , ("ss_quantity" - COALESCE("sr_return_quantity", 0)) "sales_cnt" + , ("ss_ext_sales_price" - COALESCE("sr_return_amt", DECIMAL '0.0')) "sales_amt" + FROM + (((store_sales + INNER JOIN item ON ("i_item_sk" = "ss_item_sk")) + INNER 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" = 'Books ') +UNION SELECT + "d_year" + , "i_brand_id" + , "i_class_id" + , "i_category_id" + , "i_manufact_id" + , ("ws_quantity" - COALESCE("wr_return_quantity", 0)) "sales_cnt" + , ("ws_ext_sales_price" - COALESCE("wr_return_amt", DECIMAL '0.0')) "sales_amt" + FROM + (((web_sales + INNER JOIN item ON ("i_item_sk" = "ws_item_sk")) + INNER 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" = 'Books ') + ) sales_detail + GROUP BY "d_year", "i_brand_id", "i_class_id", "i_category_id", "i_manufact_id" +) +SELECT + "prev_yr"."d_year" "prev_year" +, "curr_yr"."d_year" "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" "prev_yr_cnt" +, "curr_yr"."sales_cnt" "curr_yr_cnt" +, ("curr_yr"."sales_cnt" - "prev_yr"."sales_cnt") "sales_cnt_diff" +, ("curr_yr"."sales_amt" - "prev_yr"."sales_amt") "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))) < DECIMAL '0.9') +ORDER BY "sales_cnt_diff" ASC, "sales_amt_diff" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q76.sql b/presto-tpcds/src/main/resources/tpcds/queries/q76.sql new file mode 100644 index 0000000000000..0d29b8e31106d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q76.sql @@ -0,0 +1,57 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "channel" +, "col_name" +, "d_year" +, "d_qoy" +, "i_category" +, "count"(*) "sales_cnt" +, "sum"("ext_sales_price") "sales_amt" +FROM + ( + SELECT + 'store' "channel" + , 'ss_store_sk' "col_name" + , "d_year" + , "d_qoy" + , "i_category" + , "ss_ext_sales_price" "ext_sales_price" + FROM + store_sales + , item + , date_dim + WHERE ("ss_store_sk" IS NULL) + AND ("ss_sold_date_sk" = "d_date_sk") + AND ("ss_item_sk" = "i_item_sk") +UNION ALL SELECT + 'web' "channel" + , 'ws_ship_customer_sk' "col_name" + , "d_year" + , "d_qoy" + , "i_category" + , "ws_ext_sales_price" "ext_sales_price" + FROM + web_sales + , item + , date_dim + WHERE ("ws_ship_customer_sk" IS NULL) + AND ("ws_sold_date_sk" = "d_date_sk") + AND ("ws_item_sk" = "i_item_sk") +UNION ALL SELECT + 'catalog' "channel" + , 'cs_ship_addr_sk' "col_name" + , "d_year" + , "d_qoy" + , "i_category" + , "cs_ext_sales_price" "ext_sales_price" + FROM + catalog_sales + , item + , date_dim + WHERE ("cs_ship_addr_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" ASC, "col_name" ASC, "d_year" ASC, "d_qoy" ASC, "i_category" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q77.sql b/presto-tpcds/src/main/resources/tpcds/queries/q77.sql new file mode 100644 index 0000000000000..d5f681afaedb5 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q77.sql @@ -0,0 +1,121 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ss AS ( + SELECT + "s_store_sk" + , "sum"("ss_ext_sales_price") "sales" + , "sum"("ss_net_profit") "profit" + FROM + store_sales + , date_dim + , store + 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' DAY)) + AND ("ss_store_sk" = "s_store_sk") + GROUP BY "s_store_sk" +) +, sr AS ( + SELECT + "s_store_sk" + , "sum"("sr_return_amt") "returns" + , "sum"("sr_net_loss") "profit_loss" + FROM + store_returns + , date_dim + , store + WHERE ("sr_returned_date_sk" = "d_date_sk") + AND ("d_date" BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + AND ("sr_store_sk" = "s_store_sk") + GROUP BY "s_store_sk" +) +, cs AS ( + SELECT + "cs_call_center_sk" + , "sum"("cs_ext_sales_price") "sales" + , "sum"("cs_net_profit") "profit" + FROM + catalog_sales + , date_dim + 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' DAY)) + GROUP BY "cs_call_center_sk" +) +, cr AS ( + SELECT + "cr_call_center_sk" + , "sum"("cr_return_amount") "returns" + , "sum"("cr_net_loss") "profit_loss" + FROM + catalog_returns + , date_dim + WHERE ("cr_returned_date_sk" = "d_date_sk") + AND ("d_date" BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + GROUP BY "cr_call_center_sk" +) +, ws AS ( + SELECT + "wp_web_page_sk" + , "sum"("ws_ext_sales_price") "sales" + , "sum"("ws_net_profit") "profit" + FROM + web_sales + , date_dim + , web_page + 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' DAY)) + AND ("ws_web_page_sk" = "wp_web_page_sk") + GROUP BY "wp_web_page_sk" +) +, wr AS ( + SELECT + "wp_web_page_sk" + , "sum"("wr_return_amt") "returns" + , "sum"("wr_net_loss") "profit_loss" + FROM + web_returns + , date_dim + , web_page + WHERE ("wr_returned_date_sk" = "d_date_sk") + AND ("d_date" BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + AND ("wr_web_page_sk" = "wp_web_page_sk") + GROUP BY "wp_web_page_sk" +) +SELECT + "channel" +, "id" +, "sum"("sales") "sales" +, "sum"("returns") "returns" +, "sum"("profit") "profit" +FROM + ( + SELECT + 'store channel' "channel" + , "ss"."s_store_sk" "id" + , "sales" + , COALESCE("returns", 0) "returns" + , ("profit" - COALESCE("profit_loss", 0)) "profit" + FROM + (ss + LEFT JOIN sr ON ("ss"."s_store_sk" = "sr"."s_store_sk")) +UNION ALL SELECT + 'catalog channel' "channel" + , "cs_call_center_sk" "id" + , "sales" + , "returns" + , ("profit" - "profit_loss") "profit" + FROM + cs + , cr +UNION ALL SELECT + 'web channel' "channel" + , "ws"."wp_web_page_sk" "id" + , "sales" + , COALESCE("returns", 0) "returns" + , ("profit" - COALESCE("profit_loss", 0)) "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" ASC, "id" ASC, "sales" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q78.sql b/presto-tpcds/src/main/resources/tpcds/queries/q78.sql new file mode 100644 index 0000000000000..aefc12de39f45 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q78.sql @@ -0,0 +1,74 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ws AS ( + SELECT + "d_year" "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")) + INNER 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" "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")) + INNER 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" "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")) + INNER 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"((CAST("ss_qty" AS DECIMAL(10,2)) / COALESCE(("ws_qty" + "cs_qty"), 1)), 2) "ratio" +, "ss_qty" "store_qty" +, "ss_wc" "store_wholesale_cost" +, "ss_sp" "store_sales_price" +, (COALESCE("ws_qty", 0) + COALESCE("cs_qty", 0)) "other_chan_qty" +, (COALESCE("ws_wc", 0) + COALESCE("cs_wc", 0)) "other_chan_wholesale_cost" +, (COALESCE("ws_sp", 0) + COALESCE("cs_sp", 0)) "other_chan_sales_price" +FROM + ((ss +LEFT JOIN ws ON ("ws_sold_year" = "ss_sold_year") + AND ("ws_item_sk" = "ss_item_sk") + AND ("ws_customer_sk" = "ss_customer_sk")) +LEFT JOIN cs ON ("cs_sold_year" = "ss_sold_year") + AND ("cs_item_sk" = "cs_item_sk") + AND ("cs_customer_sk" = "ss_customer_sk")) +WHERE (COALESCE("ws_qty", 0) > 0) + AND (COALESCE("cs_qty", 0) > 0) + AND ("ss_sold_year" = 2000) +ORDER BY "ss_sold_year" ASC, "ss_item_sk" ASC, "ss_customer_sk" ASC, "ss_qty" DESC, "ss_wc" DESC, "ss_sp" DESC, "other_chan_qty" ASC, "other_chan_wholesale_cost" ASC, "other_chan_sales_price" ASC, "round"((CAST("ss_qty" AS DECIMAL(10,2)) / COALESCE(("ws_qty" + "cs_qty"), 1)), 2) ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q79.sql b/presto-tpcds/src/main/resources/tpcds/queries/q79.sql new file mode 100644 index 0000000000000..2501947389e85 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q79.sql @@ -0,0 +1,35 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC, "c_first_name" ASC, "substr"("s_city", 1, 30) ASC, "profit" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q80.sql b/presto-tpcds/src/main/resources/tpcds/queries/q80.sql new file mode 100644 index 0000000000000..448eb74690f14 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q80.sql @@ -0,0 +1,107 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ssr AS ( + SELECT + "s_store_id" "store_id" + , "sum"("ss_ext_sales_price") "sales" + , "sum"(COALESCE("sr_return_amt", 0)) "returns" + , "sum"(("ss_net_profit" - COALESCE("sr_net_loss", 0))) "profit" + FROM + (store_sales + LEFT 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 (CAST("d_date" AS DATE) BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + AND ("ss_store_sk" = "s_store_sk") + AND ("ss_item_sk" = "i_item_sk") + AND ("i_current_price" > 50) + AND ("ss_promo_sk" = "p_promo_sk") + AND ("p_channel_tv" = 'N') + GROUP BY "s_store_id" +) +, csr AS ( + SELECT + "cp_catalog_page_id" "catalog_page_id" + , "sum"("cs_ext_sales_price") "sales" + , "sum"(COALESCE("cr_return_amount", 0)) "returns" + , "sum"(("cs_net_profit" - COALESCE("cr_net_loss", 0))) "profit" + FROM + (catalog_sales + LEFT 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 (CAST("d_date" AS DATE) BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + AND ("cs_catalog_page_sk" = "cp_catalog_page_sk") + AND ("cs_item_sk" = "i_item_sk") + AND ("i_current_price" > 50) + AND ("cs_promo_sk" = "p_promo_sk") + AND ("p_channel_tv" = 'N') + GROUP BY "cp_catalog_page_id" +) +, wsr AS ( + SELECT + "web_site_id" + , "sum"("ws_ext_sales_price") "sales" + , "sum"(COALESCE("wr_return_amt", 0)) "returns" + , "sum"(("ws_net_profit" - COALESCE("wr_net_loss", 0))) "profit" + FROM + (web_sales + LEFT 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 (CAST("d_date" AS DATE) BETWEEN CAST('2000-08-23' AS DATE) AND (CAST('2000-08-23' AS DATE) + INTERVAL '30' DAY)) + AND ("ws_web_site_sk" = "web_site_sk") + AND ("ws_item_sk" = "i_item_sk") + AND ("i_current_price" > 50) + AND ("ws_promo_sk" = "p_promo_sk") + AND ("p_channel_tv" = 'N') + GROUP BY "web_site_id" +) +SELECT + "channel" +, "id" +, "sum"("sales") "sales" +, "sum"("returns") "returns" +, "sum"("profit") "profit" +FROM + ( + SELECT + 'store channel' "channel" + , "concat"('store', "store_id") "id" + , "sales" + , "returns" + , "profit" + FROM + ssr +UNION ALL SELECT + 'catalog channel' "channel" + , "concat"('catalog_page', "catalog_page_id") "id" + , "sales" + , "returns" + , "profit" + FROM + csr +UNION ALL SELECT + 'web channel' "channel" + , "concat"('web_site', "web_site_id") "id" + , "sales" + , "returns" + , "profit" + FROM + wsr +) x +GROUP BY ROLLUP (channel, id) +ORDER BY "channel" ASC, "id" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q81.sql b/presto-tpcds/src/main/resources/tpcds/queries/q81.sql new file mode 100644 index 0000000000000..7ac187153c2ea --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q81.sql @@ -0,0 +1,48 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + customer_total_return AS ( + SELECT + "cr_returning_customer_sk" "ctr_customer_sk" + , "ca_state" "ctr_state" + , "sum"("cr_return_amt_inc_tax") "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") * DECIMAL '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" ASC, "c_salutation" ASC, "c_first_name" ASC, "c_last_name" ASC, "ca_street_number" ASC, "ca_street_name" ASC, "ca_street_type" ASC, "ca_suite_number" ASC, "ca_city" ASC, "ca_county" ASC, "ca_state" ASC, "ca_zip" ASC, "ca_country" ASC, "ca_gmt_offset" ASC, "ca_location_type" ASC, "ctr_total_return" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q82.sql b/presto-tpcds/src/main/resources/tpcds/queries/q82.sql new file mode 100644 index 0000000000000..a1b4ae97386f9 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q82.sql @@ -0,0 +1,20 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (CAST("d_date" AS DATE) BETWEEN CAST('2000-05-25' AS DATE) AND (CAST('2000-05-25' AS DATE) + INTERVAL '60' DAY)) + 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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q83.sql b/presto-tpcds/src/main/resources/tpcds/queries/q83.sql new file mode 100644 index 0000000000000..64b8fe336e5b8 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q83.sql @@ -0,0 +1,88 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 (CAST('2000-06-30' AS DATE) , CAST('2000-09-27' AS DATE) , CAST('2000-11-17' AS DATE))) + )) + )) + 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 (CAST('2000-06-30' AS DATE) , CAST('2000-09-27' AS DATE) , CAST('2000-11-17' AS DATE))) + )) + )) + 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 (CAST('2000-06-30' AS DATE) , CAST('2000-09-27' AS DATE) , CAST('2000-11-17' AS DATE))) + )) + )) + AND ("wr_returned_date_sk" = "d_date_sk") + GROUP BY "i_item_id" +) +SELECT + "sr_items"."item_id" +, "sr_item_qty" +, CAST(((("sr_item_qty" / ((CAST("sr_item_qty" AS DECIMAL(9,4)) + "cr_item_qty") + "wr_item_qty")) / DECIMAL '3.0') * 100) AS DECIMAL(7,2)) "sr_dev" +, "cr_item_qty" +, CAST(((("cr_item_qty" / ((CAST("sr_item_qty" AS DECIMAL(9,4)) + "cr_item_qty") + "wr_item_qty")) / DECIMAL '3.0') * 100) AS DECIMAL(7,2)) "cr_dev" +, "wr_item_qty" +, CAST(((("wr_item_qty" / ((CAST("sr_item_qty" AS DECIMAL(9,4)) + "cr_item_qty") + "wr_item_qty")) / DECIMAL '3.0') * 100) AS DECIMAL(7,2)) "wr_dev" +, ((("sr_item_qty" + "cr_item_qty") + "wr_item_qty") / DECIMAL '3.00') "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" ASC, "sr_item_qty" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q84.sql b/presto-tpcds/src/main/resources/tpcds/queries/q84.sql new file mode 100644 index 0000000000000..da1c6764160cf --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q84.sql @@ -0,0 +1,21 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "c_customer_id" "customer_id" +, "concat"("concat"("c_last_name", ', '), "c_first_name") "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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q85.sql b/presto-tpcds/src/main/resources/tpcds/queries/q85.sql new file mode 100644 index 0000000000000..6925b115723ab --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q85.sql @@ -0,0 +1,51 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 DECIMAL '100.00' AND DECIMAL '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 DECIMAL '50.00' AND DECIMAL '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 DECIMAL '150.00' AND DECIMAL '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) ASC, "avg"("ws_quantity") ASC, "avg"("wr_refunded_cash") ASC, "avg"("wr_fee") ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q86.sql b/presto-tpcds/src/main/resources/tpcds/queries/q86.sql new file mode 100644 index 0000000000000..5d4d04b6c1cec --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q86.sql @@ -0,0 +1,17 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "sum"("ws_net_paid") "total_sum" +, "i_category" +, "i_class" +, (GROUPING ("i_category") + GROUPING ("i_class")) "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) "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) ASC, "rank_within_parent" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q87.sql b/presto-tpcds/src/main/resources/tpcds/queries/q87.sql new file mode 100644 index 0000000000000..5f85db2cbf197 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q87.sql @@ -0,0 +1,41 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q88.sql b/presto-tpcds/src/main/resources/tpcds/queries/q88.sql new file mode 100644 index 0000000000000..f8fd91618cfef --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q88.sql @@ -0,0 +1,163 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q89.sql b/presto-tpcds/src/main/resources/tpcds/queries/q89.sql new file mode 100644 index 0000000000000..d3e63f2aed59e --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q89.sql @@ -0,0 +1,31 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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) > DECIMAL '0.1') +ORDER BY ("sum_sales" - "avg_monthly_sales") ASC, "s_store_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q90.sql b/presto-tpcds/src/main/resources/tpcds/queries/q90.sql new file mode 100644 index 0000000000000..080b45e0c14d3 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q90.sql @@ -0,0 +1,33 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q91.sql b/presto-tpcds/src/main/resources/tpcds/queries/q91.sql new file mode 100644 index 0000000000000..c7e0bf69d441e --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q91.sql @@ -0,0 +1,30 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q92.sql b/presto-tpcds/src/main/resources/tpcds/queries/q92.sql new file mode 100644 index 0000000000000..da58d055d0671 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q92.sql @@ -0,0 +1,21 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT "sum"("ws_ext_discount_amt") "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 CAST('2000-01-27' AS DATE) AND (CAST('2000-01-27' AS DATE) + INTERVAL '90' DAY)) + AND ("d_date_sk" = "ws_sold_date_sk") + AND ("ws_ext_discount_amt" > ( + SELECT (DECIMAL '1.3' * "avg"("ws_ext_discount_amt")) + FROM + web_sales + , date_dim + WHERE ("ws_item_sk" = "i_item_sk") + AND ("d_date" BETWEEN CAST('2000-01-27' AS DATE) AND (CAST('2000-01-27' AS DATE) + INTERVAL '90' DAY)) + AND ("d_date_sk" = "ws_sold_date_sk") + )) +ORDER BY "sum"("ws_ext_discount_amt") ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q93.sql b/presto-tpcds/src/main/resources/tpcds/queries/q93.sql new file mode 100644 index 0000000000000..b07de70ab9601 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q93.sql @@ -0,0 +1,22 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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 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" ASC, "ss_customer_sk" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q94.sql b/presto-tpcds/src/main/resources/tpcds/queries/q94.sql new file mode 100644 index 0000000000000..c9d5f9e7da306 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q94.sql @@ -0,0 +1,31 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "count"(DISTINCT "ws_order_number") "order count" +, "sum"("ws_ext_ship_cost") "total shipping cost" +, "sum"("ws_net_profit") "total net profit" +FROM + web_sales ws1 +, date_dim +, customer_address +, web_site +WHERE ("d_date" BETWEEN CAST('1999-2-01' AS DATE) AND (CAST('1999-2-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 (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") ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q95.sql b/presto-tpcds/src/main/resources/tpcds/queries/q95.sql new file mode 100644 index 0000000000000..dbafe21c53e8d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q95.sql @@ -0,0 +1,42 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +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") "order count" +, "sum"("ws_ext_ship_cost") "total shipping cost" +, "sum"("ws_net_profit") "total net profit" +FROM + web_sales ws1 +, date_dim +, customer_address +, web_site +WHERE (CAST("d_date" AS DATE) BETWEEN CAST('1999-2-01' AS DATE) AND (CAST('1999-2-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") ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q96.sql b/presto-tpcds/src/main/resources/tpcds/queries/q96.sql new file mode 100644 index 0000000000000..eba2c56459795 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q96.sql @@ -0,0 +1,16 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT "count"(*) +FROM + store_sales +, household_demographics +, time_dim +, store +WHERE ("ss_sold_time_sk" = "time_dim"."t_time_sk") + AND ("ss_hdemo_sk" = "household_demographics"."hd_demo_sk") + AND ("ss_store_sk" = "s_store_sk") + AND ("time_dim"."t_hour" = 20) + AND ("time_dim"."t_minute" >= 30) + AND ("household_demographics"."hd_dep_count" = 7) + AND ("store"."s_store_name" = 'ese') +ORDER BY "count"(*) ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q97.sql b/presto-tpcds/src/main/resources/tpcds/queries/q97.sql new file mode 100644 index 0000000000000..3f04e649f8981 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q97.sql @@ -0,0 +1,36 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +WITH + ssci AS ( + SELECT + "ss_customer_sk" "customer_sk" + , "ss_item_sk" "item_sk" + FROM + store_sales + , date_dim + WHERE ("ss_sold_date_sk" = "d_date_sk") + AND ("d_month_seq" BETWEEN 1200 AND (1200 + 11)) + GROUP BY "ss_customer_sk", "ss_item_sk" +) +, csci AS ( + SELECT + "cs_bill_customer_sk" "customer_sk" + , "cs_item_sk" "item_sk" + FROM + catalog_sales + , date_dim + WHERE ("cs_sold_date_sk" = "d_date_sk") + AND ("d_month_seq" BETWEEN 1200 AND (1200 + 11)) + GROUP BY "cs_bill_customer_sk", "cs_item_sk" +) +SELECT + "sum"((CASE WHEN ("ssci"."customer_sk" IS NOT NULL) + AND ("csci"."customer_sk" IS NULL) THEN 1 ELSE 0 END)) "store_only" +, "sum"((CASE WHEN ("ssci"."customer_sk" IS NULL) + AND ("csci"."customer_sk" IS NOT NULL) THEN 1 ELSE 0 END)) "catalog_only" +, "sum"((CASE WHEN ("ssci"."customer_sk" IS NOT NULL) + AND ("csci"."customer_sk" IS NOT NULL) THEN 1 ELSE 0 END)) "store_and_catalog" +FROM + (ssci +FULL JOIN csci ON ("ssci"."customer_sk" = "csci"."customer_sk") + AND ("ssci"."item_sk" = "csci"."item_sk")) +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q98.sql b/presto-tpcds/src/main/resources/tpcds/queries/q98.sql new file mode 100644 index 0000000000000..723c225f0d37e --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q98.sql @@ -0,0 +1,19 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "i_item_id" +, "i_item_desc" +, "i_category" +, "i_class" +, "i_current_price" +, "sum"("ss_ext_sales_price") "itemrevenue" +, (("sum"("ss_ext_sales_price") * 100) / "sum"("sum"("ss_ext_sales_price")) OVER (PARTITION BY "i_class")) "revenueratio" +FROM + store_sales +, item +, date_dim +WHERE ("ss_item_sk" = "i_item_sk") + AND ("i_category" IN ('Sports ', 'Books ', 'Home ')) + AND ("ss_sold_date_sk" = "d_date_sk") + AND (CAST("d_date" AS DATE) BETWEEN CAST('1999-02-22' AS DATE) AND (CAST('1999-02-22' AS DATE) + INTERVAL '30' DAY)) +GROUP BY "i_item_id", "i_item_desc", "i_category", "i_class", "i_current_price" +ORDER BY "i_category" ASC, "i_class" ASC, "i_item_id" ASC, "i_item_desc" ASC, "revenueratio" ASC diff --git a/presto-tpcds/src/main/resources/tpcds/queries/q99.sql b/presto-tpcds/src/main/resources/tpcds/queries/q99.sql new file mode 100644 index 0000000000000..8962154cf4595 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/queries/q99.sql @@ -0,0 +1,27 @@ +-- database: presto_tpcds; groups: tpcds; requires: io.prestodb.tempto.fulfillment.table.hive.tpcds.ImmutableTpcdsTablesRequirements +SELECT + "substr"("w_warehouse_name", 1, 20) +, "sm_type" +, "cc_name" +, "sum"((CASE WHEN (("cs_ship_date_sk" - "cs_sold_date_sk") <= 30) THEN 1 ELSE 0 END)) "30 days" +, "sum"((CASE WHEN (("cs_ship_date_sk" - "cs_sold_date_sk") > 30) + AND (("cs_ship_date_sk" - "cs_sold_date_sk") <= 60) THEN 1 ELSE 0 END)) "31-60 days" +, "sum"((CASE WHEN (("cs_ship_date_sk" - "cs_sold_date_sk") > 60) + AND (("cs_ship_date_sk" - "cs_sold_date_sk") <= 90) THEN 1 ELSE 0 END)) "61-90 days" +, "sum"((CASE WHEN (("cs_ship_date_sk" - "cs_sold_date_sk") > 90) + AND (("cs_ship_date_sk" - "cs_sold_date_sk") <= 120) THEN 1 ELSE 0 END)) "91-120 days" +, "sum"((CASE WHEN (("cs_ship_date_sk" - "cs_sold_date_sk") > 120) THEN 1 ELSE 0 END)) ">120 days" +FROM + catalog_sales +, warehouse +, ship_mode +, call_center +, date_dim +WHERE ("d_month_seq" BETWEEN 1200 AND (1200 + 11)) + AND ("cs_ship_date_sk" = "d_date_sk") + AND ("cs_warehouse_sk" = "w_warehouse_sk") + AND ("cs_ship_mode_sk" = "sm_ship_mode_sk") + AND ("cs_call_center_sk" = "cc_call_center_sk") +GROUP BY "substr"("w_warehouse_name", 1, 20), "sm_type", "cc_name" +ORDER BY "substr"("w_warehouse_name", 1, 20) ASC, "sm_type" ASC, "cc_name" ASC +LIMIT 100 diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/README.txt b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/README.txt new file mode 100644 index 0000000000000..d6c9471ad55f5 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/README.txt @@ -0,0 +1,2 @@ +This statistics are copied from from hive connector from TPCDS schema with sf3000. +So distinct values are not exact and also there are no min nor max values for char-based columns. diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/call_center.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/call_center.json new file mode 100644 index 0000000000000..d1ff93970e81d --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/call_center.json @@ -0,0 +1,152 @@ + { + "rowCount" : 48.0, + "columns" : { + "cc_county" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000 + }, + "cc_suite_number" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000 + }, + "cc_gmt_offset" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 0.000000, + "min" : -800, + "max" : -500 + }, + "cc_manager" : { + "distinctValuesCount" : 37.0, + "nullsCount" : 0.000000 + }, + "cc_city" : { + "distinctValuesCount" : 22.0, + "nullsCount" : 0.000000 + }, + "cc_zip" : { + "distinctValuesCount" : 24.0, + "nullsCount" : 0.000000 + }, + "cc_market_manager" : { + "distinctValuesCount" : 43.0, + "nullsCount" : 0.000000 + }, + "cc_company" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 6 + }, + "cc_street_number" : { + "distinctValuesCount" : 25.0, + "nullsCount" : 0.000000 + }, + "cc_mkt_id" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 6 + }, + "cc_rec_end_date" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 24.000000, + "min" : "2000-01-02", + "max" : "2002-01-01" + }, + "cc_company_name" : { + "distinctValuesCount" : 7.0, + "nullsCount" : 0.000000 + }, + "cc_open_date_sk" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 0.000000, + "min" : 2450794, + "max" : 2451146 + }, + "cc_class" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 0.000000 + }, + "cc_mkt_class" : { + "distinctValuesCount" : 43.0, + "nullsCount" : 0.000000 + }, + "cc_division" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 6 + }, + "cc_call_center_sk" : { + "distinctValuesCount" : 36.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 48 + }, + "cc_rec_start_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 0.000000, + "min" : "1998-01-02", + "max" : "2002-01-02" + }, + "cc_street_type" : { + "distinctValuesCount" : 14.0, + "nullsCount" : 0.000000 + }, + "cc_division_name" : { + "distinctValuesCount" : 7.0, + "nullsCount" : 0.000000 + }, + "cc_name" : { + "distinctValuesCount" : 25.0, + "nullsCount" : 0.000000 + }, + "cc_country" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 0.000000 + }, + "cc_closed_date_sk" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 48.000000 + }, + "cc_call_center_id" : { + "distinctValuesCount" : 24.0, + "nullsCount" : 0.000000 + }, + "cc_street_name" : { + "distinctValuesCount" : 25.0, + "nullsCount" : 0.000000 + }, + "cc_tax_percentage" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 12 + }, + "cc_sq_ft" : { + "distinctValuesCount" : 45.0, + "nullsCount" : 0.000000, + "min" : -2131742388, + "max" : 1959548348 + }, + "cc_state" : { + "distinctValuesCount" : 12.0, + "nullsCount" : 0.000000 + }, + "cc_hours" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 0.000000 + }, + "cc_mkt_desc" : { + "distinctValuesCount" : 33.0, + "nullsCount" : 0.000000 + }, + "cc_employees" : { + "distinctValuesCount" : 34.0, + "nullsCount" : 0.000000, + "min" : 146280, + "max" : 62879074 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_page.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_page.json new file mode 100644 index 0000000000000..a95643b7f531f --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_page.json @@ -0,0 +1,52 @@ + { + "rowCount" : 36000.0, + "columns" : { + "cp_catalog_page_sk" : { + "distinctValuesCount" : 59909.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 36000 + }, + "cp_catalog_page_number" : { + "distinctValuesCount" : 205.0, + "nullsCount" : 358.000000, + "min" : 1, + "max" : 333 + }, + "cp_catalog_number" : { + "distinctValuesCount" : 66.0, + "nullsCount" : 374.000000, + "min" : 1, + "max" : 109 + }, + "cp_type" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 356.000000 + }, + "cp_start_date_sk" : { + "distinctValuesCount" : 112.0, + "nullsCount" : 356.000000, + "min" : 2450815, + "max" : 2453005 + }, + "cp_end_date_sk" : { + "distinctValuesCount" : 86.0, + "nullsCount" : 368.000000, + "min" : 2450844, + "max" : 2453186 + }, + "cp_catalog_page_id" : { + "distinctValuesCount" : 27468.0, + "nullsCount" : 0.000000 + }, + "cp_department" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 353.000000 + }, + "cp_description" : { + "distinctValuesCount" : 31281.0, + "nullsCount" : 353.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_returns.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_returns.json new file mode 100644 index 0000000000000..b2af1dc839873 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_returns.json @@ -0,0 +1,168 @@ + { + "rowCount" : 4.32018033E8, + "columns" : { + "cr_order_number" : { + "distinctValuesCount" : 2.15484394E8, + "nullsCount" : 0.000000, + "min" : 2, + "max" : 479999998 + }, + "cr_store_credit" : { + "distinctValuesCount" : 1190394.0, + "nullsCount" : 8643766.000000, + "min" : 0, + "max" : 2488613 + }, + "cr_call_center_sk" : { + "distinctValuesCount" : 36.0, + "nullsCount" : 8644652.000000, + "min" : 1, + "max" : 48 + }, + "cr_warehouse_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 8647042.000000, + "min" : 1, + "max" : 22 + }, + "cr_fee" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 8647422.000000, + "min" : 50, + "max" : 10000 + }, + "cr_returned_date_sk" : { + "distinctValuesCount" : 2535.0, + "nullsCount" : 0.000000, + "min" : 2450821, + "max" : 2452924 + }, + "cr_ship_mode_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 8640537.000000, + "min" : 1, + "max" : 20 + }, + "cr_reason_sk" : { + "distinctValuesCount" : 47.0, + "nullsCount" : 8647007.000000, + "min" : 1, + "max" : 67 + }, + "cr_return_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 8639534.000000, + "min" : 1, + "max" : 100 + }, + "cr_net_loss" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 8645354.000000, + "min" : 50, + "max" : 1611866 + }, + "cr_refunded_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 8647744.000000, + "min" : 1, + "max" : 7200 + }, + "cr_returned_time_sk" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 86399 + }, + "cr_returning_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 8638960.000000, + "min" : 1, + "max" : 30000000 + }, + "cr_return_ship_cost" : { + "distinctValuesCount" : 621548.0, + "nullsCount" : 8648206.000000, + "min" : 0, + "max" : 1427328 + }, + "cr_refunded_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 8645217.000000, + "min" : 1, + "max" : 15000000 + }, + "cr_return_tax" : { + "distinctValuesCount" : 142490.0, + "nullsCount" : 8646336.000000, + "min" : 0, + "max" : 251158 + }, + "cr_refunded_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 8638060.000000, + "min" : 1, + "max" : 30000000 + }, + "cr_reversed_charge" : { + "distinctValuesCount" : 1091596.0, + "nullsCount" : 8643839.000000, + "min" : 0, + "max" : 2403384 + }, + "cr_returning_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 8648349.000000, + "min" : 1, + "max" : 15000000 + }, + "cr_refunded_cash" : { + "distinctValuesCount" : 1543750.0, + "nullsCount" : 8638178.000000, + "min" : 0, + "max" : 2695524 + }, + "cr_return_amt_inc_tax" : { + "distinctValuesCount" : 2001996.0, + "nullsCount" : 8647001.000000, + "min" : 0, + "max" : 3041806 + }, + "cr_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "cr_refunded_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 8643595.000000, + "min" : 1, + "max" : 1920800 + }, + "cr_returning_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 8645966.000000, + "min" : 1, + "max" : 7200 + }, + "cr_returning_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 8641134.000000, + "min" : 1, + "max" : 1920800 + }, + "cr_return_amount" : { + "distinctValuesCount" : 1000998.0, + "nullsCount" : 8638795.000000, + "min" : 0, + "max" : 2880504 + }, + "cr_catalog_page_sk" : { + "distinctValuesCount" : 27468.0, + "nullsCount" : 8646402.000000, + "min" : 1, + "max" : 30303 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_sales.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_sales.json new file mode 100644 index 0000000000000..0c98f373938a1 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/catalog_sales.json @@ -0,0 +1,210 @@ + { + "rowCount" : 4.32007888E9, + "columns" : { + "cs_ext_sales_price" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 21598683.000000, + "min" : 0, + "max" : 2994300 + }, + "cs_ext_tax" : { + "distinctValuesCount" : 219750.0, + "nullsCount" : 21598935.000000, + "min" : 0, + "max" : 267327 + }, + "cs_call_center_sk" : { + "distinctValuesCount" : 36.0, + "nullsCount" : 21593946.000000, + "min" : 1, + "max" : 48 + }, + "cs_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "cs_ext_wholesale_cost" : { + "distinctValuesCount" : 545798.0, + "nullsCount" : 21595674.000000, + "min" : 100, + "max" : 1000000 + }, + "cs_net_paid_inc_ship" : { + "distinctValuesCount" : 2711215.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 4395600 + }, + "cs_coupon_amt" : { + "distinctValuesCount" : 2001996.0, + "nullsCount" : 21593373.000000, + "min" : 0, + "max" : 2873000 + }, + "cs_ship_date_sk" : { + "distinctValuesCount" : 2324.0, + "nullsCount" : 21601305.000000, + "min" : 2450817, + "max" : 2452744 + }, + "cs_bill_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 21604935.000000, + "min" : 1, + "max" : 30000000 + }, + "cs_list_price" : { + "distinctValuesCount" : 25189.0, + "nullsCount" : 21600012.000000, + "min" : 100, + "max" : 30000 + }, + "cs_ship_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 21597564.000000, + "min" : 1, + "max" : 30000000 + }, + "cs_catalog_page_sk" : { + "distinctValuesCount" : 27468.0, + "nullsCount" : 21595925.000000, + "min" : 1, + "max" : 30303 + }, + "cs_warehouse_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 21601466.000000, + "min" : 1, + "max" : 22 + }, + "cs_sales_price" : { + "distinctValuesCount" : 25189.0, + "nullsCount" : 21597770.000000, + "min" : 0, + "max" : 30000 + }, + "cs_net_paid_inc_tax" : { + "distinctValuesCount" : 2380788.0, + "nullsCount" : 21598003.000000, + "min" : 0, + "max" : 3237627 + }, + "cs_sold_date_sk" : { + "distinctValuesCount" : 2226.0, + "nullsCount" : 21604595.000000, + "min" : 2450815, + "max" : 2452654 + }, + "cs_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 21605853.000000, + "min" : 1, + "max" : 100 + }, + "cs_ship_mode_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 21598565.000000, + "min" : 1, + "max" : 20 + }, + "cs_sold_time_sk" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 21598766.000000, + "min" : 0, + "max" : 86399 + }, + "cs_net_profit" : { + "distinctValuesCount" : 2279851.0, + "nullsCount" : 0.000000, + "min" : -1000000, + "max" : 1996200 + }, + "cs_bill_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 21600722.000000, + "min" : 1, + "max" : 15000000 + }, + "cs_bill_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 21598031.000000, + "min" : 1, + "max" : 1920800 + }, + "cs_promo_sk" : { + "distinctValuesCount" : 1507.0, + "nullsCount" : 21602146.000000, + "min" : 1, + "max" : 1800 + }, + "cs_net_paid_inc_ship_tax" : { + "distinctValuesCount" : 3834237.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 4659336 + }, + "cs_ship_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 21594672.000000, + "min" : 1, + "max" : 1920800 + }, + "cs_ship_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 21604320.000000, + "min" : 1, + "max" : 7200 + }, + "cs_net_paid" : { + "distinctValuesCount" : 2090632.0, + "nullsCount" : 21589858.000000, + "min" : 0, + "max" : 2994300 + }, + "cs_ship_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 21593452.000000, + "min" : 1, + "max" : 15000000 + }, + "cs_order_number" : { + "distinctValuesCount" : 5.35201957E8, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 480000000 + }, + "cs_bill_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 21594077.000000, + "min" : 1, + "max" : 7200 + }, + "cs_ext_list_price" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 21602226.000000, + "min" : 100, + "max" : 3000000 + }, + "cs_ext_discount_amt" : { + "distinctValuesCount" : 1243097.0, + "nullsCount" : 21597495.000000, + "min" : 0, + "max" : 2998200 + }, + "cs_wholesale_cost" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 21600026.000000, + "min" : 100, + "max" : 10000 + }, + "cs_ext_ship_cost" : { + "distinctValuesCount" : 677803.0, + "nullsCount" : 21602964.000000, + "min" : 0, + "max" : 1499400 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer.json new file mode 100644 index 0000000000000..6f4088e0787dc --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer.json @@ -0,0 +1,98 @@ + { + "rowCount" : 3.0E7, + "columns" : { + "c_first_shipto_date_sk" : { + "distinctValuesCount" : 3585.0, + "nullsCount" : 1051228.000000, + "min" : 2449028, + "max" : 2452678 + }, + "c_login" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 30000000.000000 + }, + "c_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 30000000 + }, + "c_last_review_date_sk" : { + "distinctValuesCount" : 266.0, + "nullsCount" : 1049890.000000, + "min" : 2452283, + "max" : 2452648 + }, + "c_customer_id" : { + "distinctValuesCount" : 3.9779123E7, + "nullsCount" : 0.000000 + }, + "c_first_sales_date_sk" : { + "distinctValuesCount" : 3585.0, + "nullsCount" : 1050303.000000, + "min" : 2448998, + "max" : 2452648 + }, + "c_birth_month" : { + "distinctValuesCount" : 13.0, + "nullsCount" : 1049422.000000, + "min" : 1, + "max" : 12 + }, + "c_birth_day" : { + "distinctValuesCount" : 23.0, + "nullsCount" : 1050937.000000, + "min" : 1, + "max" : 31 + }, + "c_current_addr_sk" : { + "distinctValuesCount" : 1.7465542E7, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 15000000 + }, + "c_preferred_cust_flag" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 1050942.000000 + }, + "c_current_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 1049211.000000, + "min" : 1, + "max" : 7200 + }, + "c_salutation" : { + "distinctValuesCount" : 7.0, + "nullsCount" : 1050068.000000 + }, + "c_email_address" : { + "distinctValuesCount" : 3.4931085E7, + "nullsCount" : 1050182.000000 + }, + "c_birth_year" : { + "distinctValuesCount" : 49.0, + "nullsCount" : 1050423.000000, + "min" : 1924, + "max" : 1992 + }, + "c_first_name" : { + "distinctValuesCount" : 5529.0, + "nullsCount" : 1048745.000000 + }, + "c_last_name" : { + "distinctValuesCount" : 7820.0, + "nullsCount" : 1050668.000000 + }, + "c_current_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 1049861.000000, + "min" : 1, + "max" : 1920800 + }, + "c_birth_country" : { + "distinctValuesCount" : 196.0, + "nullsCount" : 1049811.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_address.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_address.json new file mode 100644 index 0000000000000..5fe8422895168 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_address.json @@ -0,0 +1,62 @@ + { + "rowCount" : 1.5E7, + "columns" : { + "ca_suite_number" : { + "distinctValuesCount" : 86.0, + "nullsCount" : 450380.000000 + }, + "ca_county" : { + "distinctValuesCount" : 1716.0, + "nullsCount" : 449296.000000 + }, + "ca_gmt_offset" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 449744.000000, + "min" : -1000, + "max" : -500 + }, + "ca_zip" : { + "distinctValuesCount" : 10141.0, + "nullsCount" : 449965.000000 + }, + "ca_country" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 449481.000000 + }, + "ca_street_name" : { + "distinctValuesCount" : 7488.0, + "nullsCount" : 449639.000000 + }, + "ca_address_id" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 0.000000 + }, + "ca_city" : { + "distinctValuesCount" : 896.0, + "nullsCount" : 450422.000000 + }, + "ca_street_number" : { + "distinctValuesCount" : 822.0, + "nullsCount" : 450409.000000 + }, + "ca_location_type" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 449205.000000 + }, + "ca_address_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 15000000 + }, + "ca_state" : { + "distinctValuesCount" : 51.0, + "nullsCount" : 449069.000000 + }, + "ca_street_type" : { + "distinctValuesCount" : 23.0, + "nullsCount" : 449465.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_demographics.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_demographics.json new file mode 100644 index 0000000000000..f942fdc137cdc --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/customer_demographics.json @@ -0,0 +1,52 @@ + { + "rowCount" : 1920800.0, + "columns" : { + "cd_education_status" : { + "distinctValuesCount" : 9.0, + "nullsCount" : 0.000000 + }, + "cd_dep_employed_count" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 6 + }, + "cd_dep_count" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 6 + }, + "cd_marital_status" : { + "distinctValuesCount" : 7.0, + "nullsCount" : 0.000000 + }, + "cd_dep_college_count" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 6 + }, + "cd_demo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 1920800 + }, + "cd_gender" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "cd_credit_rating" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000 + }, + "cd_purchase_estimate" : { + "distinctValuesCount" : 24.0, + "nullsCount" : 0.000000, + "min" : 500, + "max" : 10000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/date_dim.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/date_dim.json new file mode 100644 index 0000000000000..cc4a90debe9bc --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/date_dim.json @@ -0,0 +1,152 @@ + { + "rowCount" : 73049.0, + "columns" : { + "d_current_quarter" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_dom" : { + "distinctValuesCount" : 23.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 31 + }, + "d_date_sk" : { + "distinctValuesCount" : 65332.0, + "nullsCount" : 0.000000, + "min" : 2415022, + "max" : 2488070 + }, + "d_first_dom" : { + "distinctValuesCount" : 2226.0, + "nullsCount" : 0.000000, + "min" : 2415021, + "max" : 2488070 + }, + "d_year" : { + "distinctValuesCount" : 112.0, + "nullsCount" : 0.000000, + "min" : 1900, + "max" : 2100 + }, + "d_week_seq" : { + "distinctValuesCount" : 13152.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 10436 + }, + "d_moy" : { + "distinctValuesCount" : 13.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 12 + }, + "d_dow" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 6 + }, + "d_current_month" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_date_id" : { + "distinctValuesCount" : 109875.0, + "nullsCount" : 0.000000 + }, + "d_same_day_ly" : { + "distinctValuesCount" : 65332.0, + "nullsCount" : 0.000000, + "min" : 2414657, + "max" : 2487705 + }, + "d_fy_week_seq" : { + "distinctValuesCount" : 13152.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 10436 + }, + "d_last_dom" : { + "distinctValuesCount" : 2535.0, + "nullsCount" : 0.000000, + "min" : 2415020, + "max" : 2488372 + }, + "d_fy_year" : { + "distinctValuesCount" : 112.0, + "nullsCount" : 0.000000, + "min" : 1900, + "max" : 2100 + }, + "d_following_holiday" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_same_day_lq" : { + "distinctValuesCount" : 65332.0, + "nullsCount" : 0.000000, + "min" : 2414930, + "max" : 2487978 + }, + "d_fy_quarter_seq" : { + "distinctValuesCount" : 429.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 801 + }, + "d_qoy" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 4 + }, + "d_current_week" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 0.000000 + }, + "d_quarter_seq" : { + "distinctValuesCount" : 429.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 801 + }, + "d_month_seq" : { + "distinctValuesCount" : 2764.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 2400 + }, + "d_quarter_name" : { + "distinctValuesCount" : 721.0, + "nullsCount" : 0.000000 + }, + "d_current_year" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_date" : { + "distinctValuesCount" : 81133.0, + "nullsCount" : 0.000000, + "min" : "1900-01-03", + "max" : "2100-01-02" + }, + "d_day_name" : { + "distinctValuesCount" : 9.0, + "nullsCount" : 0.000000 + }, + "d_holiday" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_weekend" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "d_current_day" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 0.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/dbgen_version.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/dbgen_version.json new file mode 100644 index 0000000000000..05ed672bab815 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/dbgen_version.json @@ -0,0 +1,2 @@ +{ + "columns" : { diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/household_demographics.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/household_demographics.json new file mode 100644 index 0000000000000..77d420d4a8ddf --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/household_demographics.json @@ -0,0 +1,34 @@ + { + "rowCount" : 7200.0, + "columns" : { + "hd_demo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 7200 + }, + "hd_income_band_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 20 + }, + "hd_buy_potential" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000 + }, + "hd_dep_count" : { + "distinctValuesCount" : 11.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 9 + }, + "hd_vehicle_count" : { + "distinctValuesCount" : 6.0, + "nullsCount" : 0.000000, + "min" : -1, + "max" : 4 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/income_band.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/income_band.json new file mode 100644 index 0000000000000..642547c2b7019 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/income_band.json @@ -0,0 +1,24 @@ + { + "rowCount" : 20.0, + "columns" : { + "ib_income_band_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 20 + }, + "ib_lower_bound" : { + "distinctValuesCount" : 21.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 190001 + }, + "ib_upper_bound" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 10000, + "max" : 200000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/inventory.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/inventory.json new file mode 100644 index 0000000000000..f146b677282f8 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/inventory.json @@ -0,0 +1,30 @@ + { + "rowCount" : 1.03356E9, + "columns" : { + "inv_warehouse_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 22 + }, + "inv_quantity_on_hand" : { + "distinctValuesCount" : 691.0, + "nullsCount" : 51680476.000000, + "min" : 0, + "max" : 1000 + }, + "inv_date_sk" : { + "distinctValuesCount" : 316.0, + "nullsCount" : 0.000000, + "min" : 2450815, + "max" : 2452635 + }, + "inv_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/item.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/item.json new file mode 100644 index 0000000000000..70d17d5d94e66 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/item.json @@ -0,0 +1,114 @@ + { + "rowCount" : 360000.0, + "columns" : { + "i_product_name" : { + "distinctValuesCount" : 403024.0, + "nullsCount" : 908.000000 + }, + "i_rec_end_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 180000.000000, + "min" : "1999-10-28", + "max" : "2001-10-27" + }, + "i_category_id" : { + "distinctValuesCount" : 11.0, + "nullsCount" : 914.000000, + "min" : 1, + "max" : 10 + }, + "i_current_price" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 904.000000, + "min" : 9, + "max" : 9999 + }, + "i_item_desc" : { + "distinctValuesCount" : 297598.0, + "nullsCount" : 886.000000 + }, + "i_size" : { + "distinctValuesCount" : 9.0, + "nullsCount" : 924.000000 + }, + "i_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "i_wholesale_cost" : { + "distinctValuesCount" : 7820.0, + "nullsCount" : 876.000000, + "min" : 2, + "max" : 8949 + }, + "i_units" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 905.000000 + }, + "i_brand_id" : { + "distinctValuesCount" : 633.0, + "nullsCount" : 911.000000, + "min" : 1001001, + "max" : 10016017 + }, + "i_manager_id" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 886.000000, + "min" : 1, + "max" : 100 + }, + "i_brand" : { + "distinctValuesCount" : 633.0, + "nullsCount" : 898.000000 + }, + "i_category" : { + "distinctValuesCount" : 8.0, + "nullsCount" : 855.000000 + }, + "i_rec_start_date" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 931.000000, + "min" : "1997-10-28", + "max" : "2001-10-28" + }, + "i_manufact" : { + "distinctValuesCount" : 1267.0, + "nullsCount" : 924.000000 + }, + "i_container" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 900.000000 + }, + "i_manufact_id" : { + "distinctValuesCount" : 691.0, + "nullsCount" : 900.000000, + "min" : 1, + "max" : 1000 + }, + "i_class" : { + "distinctValuesCount" : 102.0, + "nullsCount" : 910.000000 + }, + "i_color" : { + "distinctValuesCount" : 66.0, + "nullsCount" : 939.000000 + }, + "i_class_id" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 870.000000, + "min" : 1, + "max" : 16 + }, + "i_formulation" : { + "distinctValuesCount" : 239639.0, + "nullsCount" : 928.000000 + }, + "i_item_id" : { + "distinctValuesCount" : 142490.0, + "nullsCount" : 0.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/promotion.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/promotion.json new file mode 100644 index 0000000000000..c69cbf74f11ee --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/promotion.json @@ -0,0 +1,94 @@ + { + "rowCount" : 1800.0, + "columns" : { + "p_channel_dmail" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 19.000000 + }, + "p_channel_details" : { + "distinctValuesCount" : 1955.0, + "nullsCount" : 17.000000 + }, + "p_end_date_sk" : { + "distinctValuesCount" : 1066.0, + "nullsCount" : 20.000000, + "min" : 2450107, + "max" : 2450970 + }, + "p_channel_email" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 22.000000 + }, + "p_channel_tv" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 21.000000 + }, + "p_response_targe" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 29.000000, + "min" : 1, + "max" : 1 + }, + "p_promo_name" : { + "distinctValuesCount" : 11.0, + "nullsCount" : 25.000000 + }, + "p_channel_demo" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 21.000000 + }, + "p_start_date_sk" : { + "distinctValuesCount" : 753.0, + "nullsCount" : 25.000000, + "min" : 2450096, + "max" : 2450915 + }, + "p_promo_sk" : { + "distinctValuesCount" : 1507.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 1800 + }, + "p_channel_press" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 21.000000 + }, + "p_item_sk" : { + "distinctValuesCount" : 1792.0, + "nullsCount" : 23.000000, + "min" : 56, + "max" : 359779 + }, + "p_channel_catalog" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 21.000000 + }, + "p_channel_radio" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 24.000000 + }, + "p_purpose" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 20.000000 + }, + "p_discount_active" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 27.000000 + }, + "p_channel_event" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 20.000000 + }, + "p_cost" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 22.000000, + "min" : 100000, + "max" : 100000 + }, + "p_promo_id" : { + "distinctValuesCount" : 2041.0, + "nullsCount" : 0.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/reason.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/reason.json new file mode 100644 index 0000000000000..f5693c3d86465 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/reason.json @@ -0,0 +1,20 @@ + { + "rowCount" : 67.0, + "columns" : { + "r_reason_desc" : { + "distinctValuesCount" : 90.0, + "nullsCount" : 0.000000 + }, + "r_reason_id" : { + "distinctValuesCount" : 58.0, + "nullsCount" : 0.000000 + }, + "r_reason_sk" : { + "distinctValuesCount" : 47.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 67 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/ship_mode.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/ship_mode.json new file mode 100644 index 0000000000000..80c9ec5a0e97b --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/ship_mode.json @@ -0,0 +1,32 @@ + { + "rowCount" : 20.0, + "columns" : { + "sm_type" : { + "distinctValuesCount" : 6.0, + "nullsCount" : 0.000000 + }, + "sm_ship_mode_id" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000 + }, + "sm_contract" : { + "distinctValuesCount" : 19.0, + "nullsCount" : 0.000000 + }, + "sm_ship_mode_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 20 + }, + "sm_code" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000 + }, + "sm_carrier" : { + "distinctValuesCount" : 26.0, + "nullsCount" : 0.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store.json new file mode 100644 index 0000000000000..ab3eaffc49af7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store.json @@ -0,0 +1,144 @@ + { + "rowCount" : 1350.0, + "columns" : { + "s_company_id" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 10.000000, + "min" : 1, + "max" : 1 + }, + "s_closed_date_sk" : { + "distinctValuesCount" : 188.0, + "nullsCount" : 961.000000, + "min" : 2450820, + "max" : 2451313 + }, + "s_geography_class" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 9.000000 + }, + "s_tax_precentage" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 9.000000, + "min" : 0, + "max" : 11 + }, + "s_street_type" : { + "distinctValuesCount" : 23.0, + "nullsCount" : 10.000000 + }, + "s_rec_start_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 9.000000, + "min" : "1997-03-14", + "max" : "2001-03-14" + }, + "s_floor_space" : { + "distinctValuesCount" : 1213.0, + "nullsCount" : 8.000000, + "min" : 5002549, + "max" : 9997773 + }, + "s_division_id" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 7.000000, + "min" : 1, + "max" : 1 + }, + "s_zip" : { + "distinctValuesCount" : 488.0, + "nullsCount" : 10.000000 + }, + "s_manager" : { + "distinctValuesCount" : 1020.0, + "nullsCount" : 13.000000 + }, + "s_store_name" : { + "distinctValuesCount" : 11.0, + "nullsCount" : 8.000000 + }, + "s_market_id" : { + "distinctValuesCount" : 11.0, + "nullsCount" : 10.000000, + "min" : 1, + "max" : 10 + }, + "s_market_desc" : { + "distinctValuesCount" : 1020.0, + "nullsCount" : 13.000000 + }, + "s_number_employees" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 11.000000, + "min" : 200, + "max" : 300 + }, + "s_store_sk" : { + "distinctValuesCount" : 1213.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 1350 + }, + "s_rec_end_date" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 675.000000, + "min" : "1999-03-14", + "max" : "2001-03-13" + }, + "s_county" : { + "distinctValuesCount" : 39.0, + "nullsCount" : 8.000000 + }, + "s_store_id" : { + "distinctValuesCount" : 633.0, + "nullsCount" : 0.000000 + }, + "s_gmt_offset" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 6.000000, + "min" : -800, + "max" : -500 + }, + "s_hours" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 13.000000 + }, + "s_state" : { + "distinctValuesCount" : 36.0, + "nullsCount" : 8.000000 + }, + "s_street_number" : { + "distinctValuesCount" : 556.0, + "nullsCount" : 12.000000 + }, + "s_division_name" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 9.000000 + }, + "s_suite_number" : { + "distinctValuesCount" : 86.0, + "nullsCount" : 6.000000 + }, + "s_market_manager" : { + "distinctValuesCount" : 787.0, + "nullsCount" : 12.000000 + }, + "s_company_name" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 10.000000 + }, + "s_country" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 6.000000 + }, + "s_street_name" : { + "distinctValuesCount" : 753.0, + "nullsCount" : 10.000000 + }, + "s_city" : { + "distinctValuesCount" : 61.0, + "nullsCount" : 10.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_returns.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_returns.json new file mode 100644 index 0000000000000..b89643f7511a2 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_returns.json @@ -0,0 +1,126 @@ + { + "rowCount" : 8.63989652E8, + "columns" : { + "sr_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "sr_return_ship_cost" : { + "distinctValuesCount" : 500499.0, + "nullsCount" : 30240907.000000, + "min" : 0, + "max" : 981486 + }, + "sr_ticket_number" : { + "distinctValuesCount" : 5.83641873E8, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 720000000 + }, + "sr_return_amt_inc_tax" : { + "distinctValuesCount" : 1683471.0, + "nullsCount" : 30237093.000000, + "min" : 0, + "max" : 2080782 + }, + "sr_return_time_sk" : { + "distinctValuesCount" : 46196.0, + "nullsCount" : 30238098.000000, + "min" : 28799, + "max" : 61199 + }, + "sr_return_tax" : { + "distinctValuesCount" : 114739.0, + "nullsCount" : 30240859.000000, + "min" : 0, + "max" : 171437 + }, + "sr_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 30232372.000000, + "min" : 1, + "max" : 1920800 + }, + "sr_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 30239142.000000, + "min" : 1, + "max" : 15000000 + }, + "sr_fee" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 30229858.000000, + "min" : 50, + "max" : 10000 + }, + "sr_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 30240875.000000, + "min" : 1, + "max" : 30000000 + }, + "sr_refunded_cash" : { + "distinctValuesCount" : 1190394.0, + "nullsCount" : 30237954.000000, + "min" : 0, + "max" : 1817396 + }, + "sr_return_amt" : { + "distinctValuesCount" : 879002.0, + "nullsCount" : 30237383.000000, + "min" : 0, + "max" : 1944700 + }, + "sr_return_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 30240711.000000, + "min" : 1, + "max" : 100 + }, + "sr_net_loss" : { + "distinctValuesCount" : 1190394.0, + "nullsCount" : 30234960.000000, + "min" : 50, + "max" : 1097126 + }, + "sr_returned_date_sk" : { + "distinctValuesCount" : 2324.0, + "nullsCount" : 30239636.000000, + "min" : 2450820, + "max" : 2452822 + }, + "sr_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 30243127.000000, + "min" : 1, + "max" : 7200 + }, + "sr_store_sk" : { + "distinctValuesCount" : 633.0, + "nullsCount" : 30237802.000000, + "min" : 1, + "max" : 1348 + }, + "sr_reason_sk" : { + "distinctValuesCount" : 47.0, + "nullsCount" : 30240241.000000, + "min" : 1, + "max" : 67 + }, + "sr_reversed_charge" : { + "distinctValuesCount" : 1190394.0, + "nullsCount" : 30245123.000000, + "min" : 0, + "max" : 1734467 + }, + "sr_store_credit" : { + "distinctValuesCount" : 1298134.0, + "nullsCount" : 30229371.000000, + "min" : 0, + "max" : 1779248 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_sales.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_sales.json new file mode 100644 index 0000000000000..995b419604ab3 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/store_sales.json @@ -0,0 +1,144 @@ + { + "rowCount" : 8.639936081E9, + "columns" : { + "ss_net_profit" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 388764120.000000, + "min" : -1000000, + "max" : 998600 + }, + "ss_ext_sales_price" : { + "distinctValuesCount" : 917919.0, + "nullsCount" : 388796452.000000, + "min" : 0, + "max" : 1997200 + }, + "ss_ext_tax" : { + "distinctValuesCount" : 130664.0, + "nullsCount" : 388790616.000000, + "min" : 0, + "max" : 179748 + }, + "ss_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 388791462.000000, + "min" : 1, + "max" : 100 + }, + "ss_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "ss_sold_date_sk" : { + "distinctValuesCount" : 2226.0, + "nullsCount" : 388811692.000000, + "min" : 2450816, + "max" : 2452642 + }, + "ss_ext_discount_amt" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 388859709.000000, + "min" : 0, + "max" : 1977800 + }, + "ss_net_paid_inc_tax" : { + "distinctValuesCount" : 2001996.0, + "nullsCount" : 388837233.000000, + "min" : 0, + "max" : 2176948 + }, + "ss_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 388786978.000000, + "min" : 1, + "max" : 15000000 + }, + "ss_sold_time_sk" : { + "distinctValuesCount" : 74399.0, + "nullsCount" : 388800029.000000, + "min" : 28800, + "max" : 75599 + }, + "ss_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 388815979.000000, + "min" : 1, + "max" : 1920800 + }, + "ss_ticket_number" : { + "distinctValuesCount" : 8.25394252E8, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 720000000 + }, + "ss_coupon_amt" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 388859709.000000, + "min" : 0, + "max" : 1977800 + }, + "ss_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 388823543.000000, + "min" : 1, + "max" : 30000000 + }, + "ss_ext_wholesale_cost" : { + "distinctValuesCount" : 545798.0, + "nullsCount" : 388787278.000000, + "min" : 100, + "max" : 1000000 + }, + "ss_list_price" : { + "distinctValuesCount" : 19423.0, + "nullsCount" : 388813055.000000, + "min" : 100, + "max" : 20000 + }, + "ss_sales_price" : { + "distinctValuesCount" : 19423.0, + "nullsCount" : 388822511.000000, + "min" : 0, + "max" : 20000 + }, + "ss_promo_sk" : { + "distinctValuesCount" : 1507.0, + "nullsCount" : 388806692.000000, + "min" : 1, + "max" : 1800 + }, + "ss_net_paid" : { + "distinctValuesCount" : 1543750.0, + "nullsCount" : 388812350.000000, + "min" : 0, + "max" : 1997200 + }, + "ss_wholesale_cost" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 388777696.000000, + "min" : 100, + "max" : 10000 + }, + "ss_store_sk" : { + "distinctValuesCount" : 633.0, + "nullsCount" : 388746744.000000, + "min" : 1, + "max" : 1348 + }, + "ss_ext_list_price" : { + "distinctValuesCount" : 917919.0, + "nullsCount" : 388801162.000000, + "min" : 100, + "max" : 2000000 + }, + "ss_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 388794618.000000, + "min" : 1, + "max" : 7200 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/time_dim.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/time_dim.json new file mode 100644 index 0000000000000..391810a71fb01 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/time_dim.json @@ -0,0 +1,56 @@ + { + "rowCount" : 86400.0, + "columns" : { + "t_am_pm" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 0.000000 + }, + "t_time" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 86399 + }, + "t_time_sk" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 86399 + }, + "t_sub_shift" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000 + }, + "t_hour" : { + "distinctValuesCount" : 19.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 23 + }, + "t_second" : { + "distinctValuesCount" : 37.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 59 + }, + "t_time_id" : { + "distinctValuesCount" : 71245.0, + "nullsCount" : 0.000000 + }, + "t_meal_time" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 0.000000 + }, + "t_minute" : { + "distinctValuesCount" : 37.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 59 + }, + "t_shift" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 0.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/warehouse.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/warehouse.json new file mode 100644 index 0000000000000..d6d33ac6f50e5 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/warehouse.json @@ -0,0 +1,68 @@ + { + "rowCount" : 22.0, + "columns" : { + "w_suite_number" : { + "distinctValuesCount" : 19.0, + "nullsCount" : 1.000000 + }, + "w_street_name" : { + "distinctValuesCount" : 19.0, + "nullsCount" : 1.000000 + }, + "w_country" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 0.000000 + }, + "w_warehouse_id" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000 + }, + "w_warehouse_sq_ft" : { + "distinctValuesCount" : 29.0, + "nullsCount" : 1.000000, + "min" : 73065, + "max" : 977787 + }, + "w_city" : { + "distinctValuesCount" : 12.0, + "nullsCount" : 0.000000 + }, + "w_street_number" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 1.000000 + }, + "w_county" : { + "distinctValuesCount" : 19.0, + "nullsCount" : 0.000000 + }, + "w_warehouse_name" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 1.000000 + }, + "w_street_type" : { + "distinctValuesCount" : 16.0, + "nullsCount" : 1.000000 + }, + "w_state" : { + "distinctValuesCount" : 13.0, + "nullsCount" : 0.000000 + }, + "w_zip" : { + "distinctValuesCount" : 22.0, + "nullsCount" : 0.000000 + }, + "w_warehouse_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 22 + }, + "w_gmt_offset" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 1.000000, + "min" : -700, + "max" : -500 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_page.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_page.json new file mode 100644 index 0000000000000..aea09ffa91b32 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_page.json @@ -0,0 +1,82 @@ + { + "rowCount" : 3600.0, + "columns" : { + "wp_type" : { + "distinctValuesCount" : 6.0, + "nullsCount" : 38.000000 + }, + "wp_rec_end_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 1800.000000, + "min" : "1999-09-04", + "max" : "2001-09-03" + }, + "wp_access_date_sk" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 39.000000, + "min" : 2452548, + "max" : 2452648 + }, + "wp_web_page_sk" : { + "distinctValuesCount" : 4452.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 3600 + }, + "wp_link_count" : { + "distinctValuesCount" : 16.0, + "nullsCount" : 35.000000, + "min" : 2, + "max" : 25 + }, + "wp_max_ad_count" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 41.000000, + "min" : 0, + "max" : 4 + }, + "wp_url" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 38.000000 + }, + "wp_creation_date_sk" : { + "distinctValuesCount" : 165.0, + "nullsCount" : 44.000000, + "min" : 2450570, + "max" : 2450815 + }, + "wp_autogen_flag" : { + "distinctValuesCount" : 2.0, + "nullsCount" : 48.000000 + }, + "wp_image_count" : { + "distinctValuesCount" : 6.0, + "nullsCount" : 34.000000, + "min" : 1, + "max" : 7 + }, + "wp_web_page_id" : { + "distinctValuesCount" : 1872.0, + "nullsCount" : 0.000000 + }, + "wp_char_count" : { + "distinctValuesCount" : 2887.0, + "nullsCount" : 52.000000, + "min" : 303, + "max" : 8523 + }, + "wp_rec_start_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 39.000000, + "min" : "1997-09-04", + "max" : "2001-09-04" + }, + "wp_customer_sk" : { + "distinctValuesCount" : 822.0, + "nullsCount" : 2567.000000, + "min" : 9522, + "max" : 29931793 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_returns.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_returns.json new file mode 100644 index 0000000000000..4012247f69eb0 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_returns.json @@ -0,0 +1,150 @@ + { + "rowCount" : 2.16003761E8, + "columns" : { + "wr_return_amt_inc_tax" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 9717393.000000, + "min" : 0, + "max" : 3104742 + }, + "wr_refunded_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 9718519.000000, + "min" : 1, + "max" : 7200 + }, + "wr_returned_time_sk" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 9718368.000000, + "min" : 0, + "max" : 86399 + }, + "wr_refunded_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 9719404.000000, + "min" : 1, + "max" : 1920800 + }, + "wr_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "wr_returning_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 9714066.000000, + "min" : 1, + "max" : 30000000 + }, + "wr_returning_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 9716775.000000, + "min" : 1, + "max" : 15000000 + }, + "wr_net_loss" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 9716393.000000, + "min" : 50, + "max" : 1673332 + }, + "wr_return_tax" : { + "distinctValuesCount" : 192968.0, + "nullsCount" : 9714571.000000, + "min" : 0, + "max" : 255116 + }, + "wr_returning_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 9716319.000000, + "min" : 1, + "max" : 7200 + }, + "wr_fee" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 9718500.000000, + "min" : 50, + "max" : 10000 + }, + "wr_return_ship_cost" : { + "distinctValuesCount" : 621548.0, + "nullsCount" : 9718757.000000, + "min" : 0, + "max" : 1447852 + }, + "wr_refunded_cash" : { + "distinctValuesCount" : 1543750.0, + "nullsCount" : 9718569.000000, + "min" : 0, + "max" : 2808582 + }, + "wr_account_credit" : { + "distinctValuesCount" : 1190394.0, + "nullsCount" : 9721316.000000, + "min" : 0, + "max" : 2383198 + }, + "wr_reversed_charge" : { + "distinctValuesCount" : 1298134.0, + "nullsCount" : 9720779.000000, + "min" : 0, + "max" : 2356160 + }, + "wr_refunded_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 9720949.000000, + "min" : 1, + "max" : 15000000 + }, + "wr_return_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 9720613.000000, + "min" : 1, + "max" : 100 + }, + "wr_refunded_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 9721855.000000, + "min" : 1, + "max" : 30000000 + }, + "wr_return_amt" : { + "distinctValuesCount" : 1045316.0, + "nullsCount" : 9719128.000000, + "min" : 0, + "max" : 2919100 + }, + "wr_web_page_sk" : { + "distinctValuesCount" : 4452.0, + "nullsCount" : 9722530.000000, + "min" : 1, + "max" : 3600 + }, + "wr_returned_date_sk" : { + "distinctValuesCount" : 2647.0, + "nullsCount" : 9721182.000000, + "min" : 2450819, + "max" : 2453002 + }, + "wr_order_number" : { + "distinctValuesCount" : 1.12512351E8, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 179999999 + }, + "wr_reason_sk" : { + "distinctValuesCount" : 47.0, + "nullsCount" : 9719509.000000, + "min" : 1, + "max" : 67 + }, + "wr_returning_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 9718132.000000, + "min" : 1, + "max" : 1920800 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_sales.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_sales.json new file mode 100644 index 0000000000000..4775d2c0a2ac7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_sales.json @@ -0,0 +1,210 @@ + { + "rowCount" : 2.159968881E9, + "columns" : { + "ws_bill_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 540060.000000, + "min" : 1, + "max" : 30000000 + }, + "ws_web_site_sk" : { + "distinctValuesCount" : 45.0, + "nullsCount" : 540166.000000, + "min" : 1, + "max" : 66 + }, + "ws_promo_sk" : { + "distinctValuesCount" : 1507.0, + "nullsCount" : 541047.000000, + "min" : 1, + "max" : 1800 + }, + "ws_sold_date_sk" : { + "distinctValuesCount" : 2226.0, + "nullsCount" : 540293.000000, + "min" : 2450816, + "max" : 2452642 + }, + "ws_sales_price" : { + "distinctValuesCount" : 25189.0, + "nullsCount" : 540390.000000, + "min" : 0, + "max" : 30000 + }, + "ws_bill_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 539531.000000, + "min" : 1, + "max" : 15000000 + }, + "ws_ext_wholesale_cost" : { + "distinctValuesCount" : 545798.0, + "nullsCount" : 540678.000000, + "min" : 100, + "max" : 1000000 + }, + "ws_ext_sales_price" : { + "distinctValuesCount" : 1243097.0, + "nullsCount" : 540534.000000, + "min" : 0, + "max" : 2997000 + }, + "ws_ext_ship_cost" : { + "distinctValuesCount" : 621548.0, + "nullsCount" : 540617.000000, + "min" : 0, + "max" : 1495000 + }, + "ws_web_page_sk" : { + "distinctValuesCount" : 4452.0, + "nullsCount" : 539709.000000, + "min" : 1, + "max" : 3600 + }, + "ws_net_paid_inc_ship_tax" : { + "distinctValuesCount" : 3671678.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 4638984 + }, + "ws_order_number" : { + "distinctValuesCount" : 1.52370476E8, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 180000000 + }, + "ws_bill_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 540153.000000, + "min" : 1, + "max" : 7200 + }, + "ws_ship_mode_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 540512.000000, + "min" : 1, + "max" : 20 + }, + "ws_warehouse_sk" : { + "distinctValuesCount" : 18.0, + "nullsCount" : 540303.000000, + "min" : 1, + "max" : 22 + }, + "ws_net_paid_inc_tax" : { + "distinctValuesCount" : 2380788.0, + "nullsCount" : 540631.000000, + "min" : 0, + "max" : 3249290 + }, + "ws_sold_time_sk" : { + "distinctValuesCount" : 125124.0, + "nullsCount" : 540530.000000, + "min" : 0, + "max" : 86399 + }, + "ws_coupon_amt" : { + "distinctValuesCount" : 2001996.0, + "nullsCount" : 539810.000000, + "min" : 0, + "max" : 2882400 + }, + "ws_net_paid" : { + "distinctValuesCount" : 2090632.0, + "nullsCount" : 540425.000000, + "min" : 0, + "max" : 2997000 + }, + "ws_item_sk" : { + "distinctValuesCount" : 385937.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 360000 + }, + "ws_list_price" : { + "distinctValuesCount" : 25189.0, + "nullsCount" : 540397.000000, + "min" : 100, + "max" : 30000 + }, + "ws_wholesale_cost" : { + "distinctValuesCount" : 10590.0, + "nullsCount" : 540191.000000, + "min" : 100, + "max" : 10000 + }, + "ws_ext_discount_amt" : { + "distinctValuesCount" : 1243097.0, + "nullsCount" : 540249.000000, + "min" : 0, + "max" : 2998200 + }, + "ws_ship_hdemo_sk" : { + "distinctValuesCount" : 9299.0, + "nullsCount" : 539449.000000, + "min" : 1, + "max" : 7200 + }, + "ws_quantity" : { + "distinctValuesCount" : 63.0, + "nullsCount" : 539966.000000, + "min" : 1, + "max" : 100 + }, + "ws_ext_tax" : { + "distinctValuesCount" : 219750.0, + "nullsCount" : 539357.000000, + "min" : 0, + "max" : 268290 + }, + "ws_net_profit" : { + "distinctValuesCount" : 2596268.0, + "nullsCount" : 0.000000, + "min" : -1000000, + "max" : 1998000 + }, + "ws_ship_addr_sk" : { + "distinctValuesCount" : 1.9889561E7, + "nullsCount" : 539862.000000, + "min" : 1, + "max" : 15000000 + }, + "ws_bill_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 539400.000000, + "min" : 1, + "max" : 1920800 + }, + "ws_ship_date_sk" : { + "distinctValuesCount" : 2324.0, + "nullsCount" : 540220.000000, + "min" : 2450817, + "max" : 2452762 + }, + "ws_ext_list_price" : { + "distinctValuesCount" : 1355607.0, + "nullsCount" : 539882.000000, + "min" : 100, + "max" : 3000000 + }, + "ws_net_paid_inc_ship" : { + "distinctValuesCount" : 3516010.0, + "nullsCount" : 0.000000, + "min" : 0, + "max" : 4426300 + }, + "ws_ship_customer_sk" : { + "distinctValuesCount" : 4.5300013E7, + "nullsCount" : 540042.000000, + "min" : 1, + "max" : 30000000 + }, + "ws_ship_cdemo_sk" : { + "distinctValuesCount" : 1835839.0, + "nullsCount" : 540787.000000, + "min" : 1, + "max" : 1920800 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_site.json b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_site.json new file mode 100644 index 0000000000000..3cb50b7c837b7 --- /dev/null +++ b/presto-tpcds/src/main/resources/tpcds/statistics/sf3000/web_site.json @@ -0,0 +1,128 @@ + { + "rowCount" : 66.0, + "columns" : { + "web_mkt_id" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 1.000000, + "min" : 1, + "max" : 6 + }, + "web_mkt_desc" : { + "distinctValuesCount" : 45.0, + "nullsCount" : 0.000000 + }, + "web_market_manager" : { + "distinctValuesCount" : 49.0, + "nullsCount" : 1.000000 + }, + "web_street_name" : { + "distinctValuesCount" : 82.0, + "nullsCount" : 1.000000 + }, + "web_company_id" : { + "distinctValuesCount" : 5.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 6 + }, + "web_suite_number" : { + "distinctValuesCount" : 49.0, + "nullsCount" : 0.000000 + }, + "web_street_type" : { + "distinctValuesCount" : 23.0, + "nullsCount" : 0.000000 + }, + "web_rec_start_date" : { + "distinctValuesCount" : 4.0, + "nullsCount" : 2.000000, + "min" : "1997-08-17", + "max" : "2001-08-17" + }, + "web_zip" : { + "distinctValuesCount" : 34.0, + "nullsCount" : 0.000000 + }, + "web_mkt_class" : { + "distinctValuesCount" : 66.0, + "nullsCount" : 1.000000 + }, + "web_county" : { + "distinctValuesCount" : 28.0, + "nullsCount" : 1.000000 + }, + "web_tax_percentage" : { + "distinctValuesCount" : 15.0, + "nullsCount" : 1.000000, + "min" : 0, + "max" : 12 + }, + "web_gmt_offset" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 1.000000, + "min" : -800, + "max" : -500 + }, + "web_open_date_sk" : { + "distinctValuesCount" : 26.0, + "nullsCount" : 1.000000, + "min" : 2450271, + "max" : 2450807 + }, + "web_rec_end_date" : { + "distinctValuesCount" : 3.0, + "nullsCount" : 33.000000, + "min" : "1999-08-17", + "max" : "2001-08-16" + }, + "web_manager" : { + "distinctValuesCount" : 47.0, + "nullsCount" : 1.000000 + }, + "web_close_date_sk" : { + "distinctValuesCount" : 25.0, + "nullsCount" : 12.000000, + "min" : 2441163, + "max" : 2446218 + }, + "web_site_sk" : { + "distinctValuesCount" : 45.0, + "nullsCount" : 0.000000, + "min" : 1, + "max" : 66 + }, + "web_city" : { + "distinctValuesCount" : 49.0, + "nullsCount" : 1.000000 + }, + "web_street_number" : { + "distinctValuesCount" : 43.0, + "nullsCount" : 1.000000 + }, + "web_name" : { + "distinctValuesCount" : 12.0, + "nullsCount" : 2.000000 + }, + "web_state" : { + "distinctValuesCount" : 29.0, + "nullsCount" : 0.000000 + }, + "web_site_id" : { + "distinctValuesCount" : 30.0, + "nullsCount" : 0.000000 + }, + "web_company_name" : { + "distinctValuesCount" : 7.0, + "nullsCount" : 2.000000 + }, + "web_class" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 1.000000 + }, + "web_country" : { + "distinctValuesCount" : 1.0, + "nullsCount" : 1.000000 + }, + "dummyColumn" : {} + } +} diff --git a/presto-tpcds/src/test/java/com/facebook/presto/sql/planner/optimizations/TestTpcdsJoinReordering.java b/presto-tpcds/src/test/java/com/facebook/presto/sql/planner/optimizations/TestTpcdsJoinReordering.java new file mode 100644 index 0000000000000..6701052792568 --- /dev/null +++ b/presto-tpcds/src/test/java/com/facebook/presto/sql/planner/optimizations/TestTpcdsJoinReordering.java @@ -0,0 +1,135 @@ +/* + * Licensed 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. + */ + +package com.facebook.presto.sql.planner.optimizations; + +import com.facebook.presto.Session; +import com.facebook.presto.testing.LocalQueryRunner; +import com.facebook.presto.tpcds.TpcdsConnectorFactory; +import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Files; +import com.google.common.io.Resources; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; +import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; +import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.AUTOMATIC; +import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinReorderingStrategy.COST_BASED; +import static com.google.common.base.Charsets.UTF_8; +import static java.lang.String.format; +import static java.util.stream.Collectors.toList; +import static org.testng.Assert.assertEquals; + +/** + * This class tests cost-based optimization rules related to joins. It contains unmodified TPCH queries. + * This class is using TPCH connector configured in way to mock Hive connector with unpartitioned TPCH tables. + */ +public class TestTpcdsJoinReordering + extends BaseJoinReorderingTest +{ + /* + * CAUTION: The expected plans here are not necessarily optimal yet. Their role is to prevent + * inadvertent regressions. A conscious improvement to the planner may require changing some + * of the expected plans, but any such change should be verified on an actual cluster with + * large amount of data. + */ + + public TestTpcdsJoinReordering() + { + super( + "sf3000.0", + ImmutableMap.of( + JOIN_REORDERING_STRATEGY, COST_BASED.name(), + JOIN_DISTRIBUTION_TYPE, AUTOMATIC.name())); + } + + @Override + protected LocalQueryRunner createQueryRunner(Session session) + { + return LocalQueryRunner.queryRunnerWithFakeNodeCountForStats(session, 8); + } + + @Override + protected void createTpchCatalog(LocalQueryRunner queryRunner) + { + queryRunner.createCatalog(queryRunner.getDefaultSession().getCatalog().get(), + new TpcdsConnectorFactory(1), + ImmutableMap.of()); + } + + @DataProvider + public Object[][] getTpcdsQueryIds() + { + return IntStream.range(1, 100) + .boxed() + .flatMap(i -> { + if (i < 10) { + return Stream.of("0" + i); + } + if (i == 14 || i == 23 || i == 24 || i == 39) { + return Stream.of(i + "_1", i + "_2"); + } + return Stream.of(i.toString()); + }) + .map(i -> new Object[]{i}) + .collect(toList()) + .toArray(new Object[][]{}); + } + + @Test(dataProvider = "getTpcdsQueryIds") + public void test(String queryId) + throws IOException + { + assertEquals(joinOrderString(tpcdsQuery(queryId)), read(getExpectedJoinOrderingFile(queryId))); + } + + private String read(File file) + throws IOException + { + return Joiner.on("\n").join(Files.readLines(file, UTF_8)) + "\n"; + } + + private static String tpcdsQuery(String queryId) + { + try { + String queryPath = format("/tpcds/queries/q%s.sql", queryId); + URL resourceUrl = Resources.getResource(TpcdsConnectorFactory.class, queryPath); + return Resources.toString(resourceUrl, StandardCharsets.UTF_8); + } + catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Test(dataProvider = "getTpcdsQueryIds", enabled = false) + public void update(String queryId) + throws IOException + { + Files.write(joinOrderString(tpcdsQuery(queryId)), getExpectedJoinOrderingFile(queryId), UTF_8); + } + + private static File getExpectedJoinOrderingFile(String queryId) + { + return new File(String.format("src/test/resources/join_ordering/%s.join_ordering", queryId)); + } +} diff --git a/presto-tpcds/src/test/resources/join_ordering/01.join_ordering b/presto-tpcds/src/test/resources/join_ordering/01.join_ordering new file mode 100644 index 0000000000000..11c796f632c3e --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/01.join_ordering @@ -0,0 +1,13 @@ +cross join: + join (LEFT, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/02.join_ordering b/presto-tpcds/src/test/resources/join_ordering/02.join_ordering new file mode 100644 index 0000000000000..8facd0c8fe8d9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/02.join_ordering @@ -0,0 +1,13 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:web_sales:sf3000.0 + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:web_sales:sf3000.0 + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/03.join_ordering b/presto-tpcds/src/test/resources/join_ordering/03.join_ordering new file mode 100644 index 0000000000000..b3772c10e30b5 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/03.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/04.join_ordering b/presto-tpcds/src/test/resources/join_ordering/04.join_ordering new file mode 100644 index 0000000000000..3919e718ff0f6 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/04.join_ordering @@ -0,0 +1,95 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/05.join_ordering b/presto-tpcds/src/test/resources/join_ordering/05.join_ordering new file mode 100644 index 0000000000000..87e022f056a97 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/05.join_ordering @@ -0,0 +1,20 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:store_sales:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:catalog_page:sf3000.0 +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:web_sales:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:web_sales:sf3000.0 + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_site:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/06.join_ordering b/presto-tpcds/src/test/resources/join_ordering/06.join_ordering new file mode 100644 index 0000000000000..12d79f7ef3c44 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/06.join_ordering @@ -0,0 +1,15 @@ +cross join: + join (LEFT, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + join (INNER, REPLICATED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/07.join_ordering b/presto-tpcds/src/test/resources/join_ordering/07.join_ordering new file mode 100644 index 0000000000000..ce89b51fd3d15 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/07.join_ordering @@ -0,0 +1,9 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/08.join_ordering b/presto-tpcds/src/test/resources/join_ordering/08.join_ordering new file mode 100644 index 0000000000000..7c365c720e373 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/08.join_ordering @@ -0,0 +1,10 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + tpcds:customer:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/09.join_ordering b/presto-tpcds/src/test/resources/join_ordering/09.join_ordering new file mode 100644 index 0000000000000..7f7dfa6ef7489 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/09.join_ordering @@ -0,0 +1,31 @@ +cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + tpcds:store_sales:sf3000.0 + tpcds:reason:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/10.join_ordering b/presto-tpcds/src/test/resources/join_ordering/10.join_ordering new file mode 100644 index 0000000000000..a5ab6eb62119c --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/10.join_ordering @@ -0,0 +1,23 @@ +cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + values + values + values diff --git a/presto-tpcds/src/test/resources/join_ordering/11.join_ordering b/presto-tpcds/src/test/resources/join_ordering/11.join_ordering new file mode 100644 index 0000000000000..bd78b781835ac --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/11.join_ordering @@ -0,0 +1,43 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/12.join_ordering b/presto-tpcds/src/test/resources/join_ordering/12.join_ordering new file mode 100644 index 0000000000000..cf19e988a63aa --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/12.join_ordering @@ -0,0 +1,5 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/13.join_ordering b/presto-tpcds/src/test/resources/join_ordering/13.join_ordering new file mode 100644 index 0000000000000..953b196c3bd95 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/13.join_ordering @@ -0,0 +1,11 @@ +join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:household_demographics:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/14_1.join_ordering b/presto-tpcds/src/test/resources/join_ordering/14_1.join_ordering new file mode 100644 index 0000000000000..631dcfc7ad5be --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/14_1.join_ordering @@ -0,0 +1,99 @@ +cross join: + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +cross join: + semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +cross join: + semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/14_2.join_ordering b/presto-tpcds/src/test/resources/join_ordering/14_2.join_ordering new file mode 100644 index 0000000000000..a437e6278030a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/14_2.join_ordering @@ -0,0 +1,71 @@ +join (INNER, PARTITIONED): + cross join: + join (INNER, REPLICATED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + cross join: + join (INNER, REPLICATED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/15.join_ordering b/presto-tpcds/src/test/resources/join_ordering/15.join_ordering new file mode 100644 index 0000000000000..7906686dba6a0 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/15.join_ordering @@ -0,0 +1,7 @@ +join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/16.join_ordering b/presto-tpcds/src/test/resources/join_ordering/16.join_ordering new file mode 100644 index 0000000000000..e5f09284ad0f9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/16.join_ordering @@ -0,0 +1,13 @@ +cross join: + join (LEFT, PARTITIONED): + join (LEFT, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:call_center:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/17.join_ordering b/presto-tpcds/src/test/resources/join_ordering/17.join_ordering new file mode 100644 index 0000000000000..d8bbd6577a209 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/17.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/18.join_ordering b/presto-tpcds/src/test/resources/join_ordering/18.join_ordering new file mode 100644 index 0000000000000..7ece85d1bd3c5 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/18.join_ordering @@ -0,0 +1,13 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:customer_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/19.join_ordering b/presto-tpcds/src/test/resources/join_ordering/19.join_ordering new file mode 100644 index 0000000000000..351fe2bb43369 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/19.join_ordering @@ -0,0 +1,11 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/20.join_ordering b/presto-tpcds/src/test/resources/join_ordering/20.join_ordering new file mode 100644 index 0000000000000..638c558bee3b6 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/20.join_ordering @@ -0,0 +1,5 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/21.join_ordering b/presto-tpcds/src/test/resources/join_ordering/21.join_ordering new file mode 100644 index 0000000000000..0440574035d64 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/21.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/22.join_ordering b/presto-tpcds/src/test/resources/join_ordering/22.join_ordering new file mode 100644 index 0000000000000..aa347cf954f1e --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/22.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/23_1.join_ordering b/presto-tpcds/src/test/resources/join_ordering/23_1.join_ordering new file mode 100644 index 0000000000000..d2b16042655d8 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/23_1.join_ordering @@ -0,0 +1,38 @@ +semijoin (PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + cross join: + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 +semijoin (PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + cross join: + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/23_2.join_ordering b/presto-tpcds/src/test/resources/join_ordering/23_2.join_ordering new file mode 100644 index 0000000000000..9f7dbd4babfeb --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/23_2.join_ordering @@ -0,0 +1,42 @@ +semijoin (PARTITIONED): + semijoin (PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + cross join: + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 +semijoin (PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + cross join: + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/24_1.join_ordering b/presto-tpcds/src/test/resources/join_ordering/24_1.join_ordering new file mode 100644 index 0000000000000..765ae860c4b43 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/24_1.join_ordering @@ -0,0 +1,23 @@ +cross join: + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:store:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:customer:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer_address:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/24_2.join_ordering b/presto-tpcds/src/test/resources/join_ordering/24_2.join_ordering new file mode 100644 index 0000000000000..765ae860c4b43 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/24_2.join_ordering @@ -0,0 +1,23 @@ +cross join: + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:store:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:customer:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer_address:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/25.join_ordering b/presto-tpcds/src/test/resources/join_ordering/25.join_ordering new file mode 100644 index 0000000000000..99136689fa27f --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/25.join_ordering @@ -0,0 +1,15 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/26.join_ordering b/presto-tpcds/src/test/resources/join_ordering/26.join_ordering new file mode 100644 index 0000000000000..845b48f35f31a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/26.join_ordering @@ -0,0 +1,9 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/27.join_ordering b/presto-tpcds/src/test/resources/join_ordering/27.join_ordering new file mode 100644 index 0000000000000..0b7cb9ee0ca32 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/27.join_ordering @@ -0,0 +1,9 @@ +join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/28.join_ordering b/presto-tpcds/src/test/resources/join_ordering/28.join_ordering new file mode 100644 index 0000000000000..b7456c7244987 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/28.join_ordering @@ -0,0 +1,11 @@ +cross join: + cross join: + cross join: + cross join: + cross join: + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/29.join_ordering b/presto-tpcds/src/test/resources/join_ordering/29.join_ordering new file mode 100644 index 0000000000000..872b28747fdd6 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/29.join_ordering @@ -0,0 +1,15 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/30.join_ordering b/presto-tpcds/src/test/resources/join_ordering/30.join_ordering new file mode 100644 index 0000000000000..9478eb6b12cc4 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/30.join_ordering @@ -0,0 +1,17 @@ +cross join: + join (LEFT, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/31.join_ordering b/presto-tpcds/src/test/resources/join_ordering/31.join_ordering new file mode 100644 index 0000000000000..08164f88834fe --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/31.join_ordering @@ -0,0 +1,35 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/32.join_ordering b/presto-tpcds/src/test/resources/join_ordering/32.join_ordering new file mode 100644 index 0000000000000..987918fafa2f7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/32.join_ordering @@ -0,0 +1,11 @@ +cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/33.join_ordering b/presto-tpcds/src/test/resources/join_ordering/33.join_ordering new file mode 100644 index 0000000000000..350f089aebac7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/33.join_ordering @@ -0,0 +1,27 @@ +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/34.join_ordering b/presto-tpcds/src/test/resources/join_ordering/34.join_ordering new file mode 100644 index 0000000000000..91bd1d001dcd7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/34.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/35.join_ordering b/presto-tpcds/src/test/resources/join_ordering/35.join_ordering new file mode 100644 index 0000000000000..d1658d1da3124 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/35.join_ordering @@ -0,0 +1,23 @@ +cross join: + join (LEFT, PARTITIONED): + cross join: + join (LEFT, PARTITIONED): + cross join: + join (LEFT, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + values + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + values + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/36.join_ordering b/presto-tpcds/src/test/resources/join_ordering/36.join_ordering new file mode 100644 index 0000000000000..015a3c1a9ddfa --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/36.join_ordering @@ -0,0 +1,7 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/37.join_ordering b/presto-tpcds/src/test/resources/join_ordering/37.join_ordering new file mode 100644 index 0000000000000..9750634046f31 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/37.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/38.join_ordering b/presto-tpcds/src/test/resources/join_ordering/38.join_ordering new file mode 100644 index 0000000000000..1a22af51be33d --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/38.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/39_1.join_ordering b/presto-tpcds/src/test/resources/join_ordering/39_1.join_ordering new file mode 100644 index 0000000000000..db1da7d5e14e9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/39_1.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/39_2.join_ordering b/presto-tpcds/src/test/resources/join_ordering/39_2.join_ordering new file mode 100644 index 0000000000000..db1da7d5e14e9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/39_2.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/40.join_ordering b/presto-tpcds/src/test/resources/join_ordering/40.join_ordering new file mode 100644 index 0000000000000..ac3fc2b232fb0 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/40.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:warehouse:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/41.join_ordering b/presto-tpcds/src/test/resources/join_ordering/41.join_ordering new file mode 100644 index 0000000000000..b4dd30737b620 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/41.join_ordering @@ -0,0 +1,5 @@ +cross join: + join (LEFT, REPLICATED): + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/42.join_ordering b/presto-tpcds/src/test/resources/join_ordering/42.join_ordering new file mode 100644 index 0000000000000..8c18069e05220 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/42.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/43.join_ordering b/presto-tpcds/src/test/resources/join_ordering/43.join_ordering new file mode 100644 index 0000000000000..5ed49ed79c118 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/43.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/44.join_ordering b/presto-tpcds/src/test/resources/join_ordering/44.join_ordering new file mode 100644 index 0000000000000..5c0370d660956 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/44.join_ordering @@ -0,0 +1,11 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + cross join: + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + cross join: + tpcds:store_sales:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/45.join_ordering b/presto-tpcds/src/test/resources/join_ordering/45.join_ordering new file mode 100644 index 0000000000000..d486d89cccb5b --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/45.join_ordering @@ -0,0 +1,11 @@ +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/46.join_ordering b/presto-tpcds/src/test/resources/join_ordering/46.join_ordering new file mode 100644 index 0000000000000..8a42601cd4498 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/46.join_ordering @@ -0,0 +1,13 @@ +join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/47.join_ordering b/presto-tpcds/src/test/resources/join_ordering/47.join_ordering new file mode 100644 index 0000000000000..6ea4441aae1aa --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/47.join_ordering @@ -0,0 +1,23 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/48.join_ordering b/presto-tpcds/src/test/resources/join_ordering/48.join_ordering new file mode 100644 index 0000000000000..cc1e0aaf6d51a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/48.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/49.join_ordering b/presto-tpcds/src/test/resources/join_ordering/49.join_ordering new file mode 100644 index 0000000000000..671f476defac6 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/49.join_ordering @@ -0,0 +1,15 @@ +join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/50.join_ordering b/presto-tpcds/src/test/resources/join_ordering/50.join_ordering new file mode 100644 index 0000000000000..a3b65eaa1f94a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/50.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/51.join_ordering b/presto-tpcds/src/test/resources/join_ordering/51.join_ordering new file mode 100644 index 0000000000000..940d9caaad850 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/51.join_ordering @@ -0,0 +1,7 @@ +join (FULL, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/52.join_ordering b/presto-tpcds/src/test/resources/join_ordering/52.join_ordering new file mode 100644 index 0000000000000..8c18069e05220 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/52.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/53.join_ordering b/presto-tpcds/src/test/resources/join_ordering/53.join_ordering new file mode 100644 index 0000000000000..de95e55f48f36 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/53.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/54.join_ordering b/presto-tpcds/src/test/resources/join_ordering/54.join_ordering new file mode 100644 index 0000000000000..6ac83647316d9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/54.join_ordering @@ -0,0 +1,20 @@ +cross join: + cross join: + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:catalog_sales:sf3000.0 + tpcds:web_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + tpcds:store_sales:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:store:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/55.join_ordering b/presto-tpcds/src/test/resources/join_ordering/55.join_ordering new file mode 100644 index 0000000000000..8c18069e05220 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/55.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/56.join_ordering b/presto-tpcds/src/test/resources/join_ordering/56.join_ordering new file mode 100644 index 0000000000000..350f089aebac7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/56.join_ordering @@ -0,0 +1,27 @@ +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/57.join_ordering b/presto-tpcds/src/test/resources/join_ordering/57.join_ordering new file mode 100644 index 0000000000000..c585ebe15f705 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/57.join_ordering @@ -0,0 +1,23 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:call_center:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:call_center:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:call_center:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/58.join_ordering b/presto-tpcds/src/test/resources/join_ordering/58.join_ordering new file mode 100644 index 0000000000000..f5e125d13ab88 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/58.join_ordering @@ -0,0 +1,29 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/59.join_ordering b/presto-tpcds/src/test/resources/join_ordering/59.join_ordering new file mode 100644 index 0000000000000..866a3c9afd19b --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/59.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/60.join_ordering b/presto-tpcds/src/test/resources/join_ordering/60.join_ordering new file mode 100644 index 0000000000000..350f089aebac7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/60.join_ordering @@ -0,0 +1,27 @@ +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 +semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:item:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/61.join_ordering b/presto-tpcds/src/test/resources/join_ordering/61.join_ordering new file mode 100644 index 0000000000000..6ad43f04332d7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/61.join_ordering @@ -0,0 +1,25 @@ +cross join: + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 + tpcds:promotion:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/62.join_ordering b/presto-tpcds/src/test/resources/join_ordering/62.join_ordering new file mode 100644 index 0000000000000..adedfb027995a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/62.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:ship_mode:sf3000.0 + tpcds:warehouse:sf3000.0 + tpcds:web_site:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/63.join_ordering b/presto-tpcds/src/test/resources/join_ordering/63.join_ordering new file mode 100644 index 0000000000000..de95e55f48f36 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/63.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/64.join_ordering b/presto-tpcds/src/test/resources/join_ordering/64.join_ordering new file mode 100644 index 0000000000000..02311905ea6fd --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/64.join_ordering @@ -0,0 +1,75 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + tpcds:household_demographics:sf3000.0 + tpcds:income_band:sf3000.0 + join (INNER, REPLICATED): + tpcds:household_demographics:sf3000.0 + tpcds:income_band:sf3000.0 + tpcds:promotion:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, PARTITIONED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + tpcds:household_demographics:sf3000.0 + tpcds:income_band:sf3000.0 + join (INNER, REPLICATED): + tpcds:household_demographics:sf3000.0 + tpcds:income_band:sf3000.0 + tpcds:promotion:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/65.join_ordering b/presto-tpcds/src/test/resources/join_ordering/65.join_ordering new file mode 100644 index 0000000000000..2472a6b317872 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/65.join_ordering @@ -0,0 +1,11 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/66.join_ordering b/presto-tpcds/src/test/resources/join_ordering/66.join_ordering new file mode 100644 index 0000000000000..5f6ad950f3fab --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/66.join_ordering @@ -0,0 +1,18 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:ship_mode:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:warehouse:sf3000.0 +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:ship_mode:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:warehouse:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/67.join_ordering b/presto-tpcds/src/test/resources/join_ordering/67.join_ordering new file mode 100644 index 0000000000000..58ac0bbee94f7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/67.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/68.join_ordering b/presto-tpcds/src/test/resources/join_ordering/68.join_ordering new file mode 100644 index 0000000000000..366705f3206e1 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/68.join_ordering @@ -0,0 +1,13 @@ +join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/69.join_ordering b/presto-tpcds/src/test/resources/join_ordering/69.join_ordering new file mode 100644 index 0000000000000..e29a2db7ea62c --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/69.join_ordering @@ -0,0 +1,23 @@ +cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + cross join: + join (LEFT, PARTITIONED): + cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + values + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + values + values diff --git a/presto-tpcds/src/test/resources/join_ordering/70.join_ordering b/presto-tpcds/src/test/resources/join_ordering/70.join_ordering new file mode 100644 index 0000000000000..8a1a976366c82 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/70.join_ordering @@ -0,0 +1,11 @@ +semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/71.join_ordering b/presto-tpcds/src/test/resources/join_ordering/71.join_ordering new file mode 100644 index 0000000000000..818d8dbdcd51a --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/71.join_ordering @@ -0,0 +1,13 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:item:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:time_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/72.join_ordering b/presto-tpcds/src/test/resources/join_ordering/72.join_ordering new file mode 100644 index 0000000000000..c35cd1e068d36 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/72.join_ordering @@ -0,0 +1,21 @@ +join (LEFT, REPLICATED): + join (LEFT, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:warehouse:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:household_demographics:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:catalog_returns:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/73.join_ordering b/presto-tpcds/src/test/resources/join_ordering/73.join_ordering new file mode 100644 index 0000000000000..91bd1d001dcd7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/73.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/74.join_ordering b/presto-tpcds/src/test/resources/join_ordering/74.join_ordering new file mode 100644 index 0000000000000..bd78b781835ac --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/74.join_ordering @@ -0,0 +1,43 @@ +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:customer:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + values + join (INNER, PARTITIONED): + values + values + join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/75.join_ordering b/presto-tpcds/src/test/resources/join_ordering/75.join_ordering new file mode 100644 index 0000000000000..851f6d9913e30 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/75.join_ordering @@ -0,0 +1,43 @@ +join (INNER, PARTITIONED): + join (RIGHT, PARTITIONED): + tpcds:catalog_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:web_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:catalog_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + join (RIGHT, PARTITIONED): + tpcds:web_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/76.join_ordering b/presto-tpcds/src/test/resources/join_ordering/76.join_ordering new file mode 100644 index 0000000000000..9955812dd7fa2 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/76.join_ordering @@ -0,0 +1,15 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:web_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/77.join_ordering b/presto-tpcds/src/test/resources/join_ordering/77.join_ordering new file mode 100644 index 0000000000000..1f287d8b9f43f --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/77.join_ordering @@ -0,0 +1,29 @@ +join (LEFT, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 +cross join: + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 +join (LEFT, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_page:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_page:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/78.join_ordering b/presto-tpcds/src/test/resources/join_ordering/78.join_ordering new file mode 100644 index 0000000000000..55cd513d0308d --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/78.join_ordering @@ -0,0 +1,17 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/79.join_ordering b/presto-tpcds/src/test/resources/join_ordering/79.join_ordering new file mode 100644 index 0000000000000..4bf3153d82d51 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/79.join_ordering @@ -0,0 +1,9 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:household_demographics:sf3000.0 + tpcds:store:sf3000.0 + tpcds:customer:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/80.join_ordering b/presto-tpcds/src/test/resources/join_ordering/80.join_ordering new file mode 100644 index 0000000000000..96888540f83fe --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/80.join_ordering @@ -0,0 +1,33 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:store:sf3000.0 +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:catalog_page:sf3000.0 +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (LEFT, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + tpcds:promotion:sf3000.0 + tpcds:web_site:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/81.join_ordering b/presto-tpcds/src/test/resources/join_ordering/81.join_ordering new file mode 100644 index 0000000000000..1961c375ed2c9 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/81.join_ordering @@ -0,0 +1,17 @@ +cross join: + join (LEFT, REPLICATED): + join (INNER, PARTITIONED): + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/82.join_ordering b/presto-tpcds/src/test/resources/join_ordering/82.join_ordering new file mode 100644 index 0000000000000..8b4c08ffd7a08 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/82.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:inventory:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/83.join_ordering b/presto-tpcds/src/test/resources/join_ordering/83.join_ordering new file mode 100644 index 0000000000000..d5135abbba7c4 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/83.join_ordering @@ -0,0 +1,29 @@ +join (INNER, PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + semijoin (PARTITIONED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, PARTITIONED): + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + semijoin (PARTITIONED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 + semijoin (PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + semijoin (PARTITIONED): + tpcds:date_dim:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/84.join_ordering b/presto-tpcds/src/test/resources/join_ordering/84.join_ordering new file mode 100644 index 0000000000000..372135132bed7 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/84.join_ordering @@ -0,0 +1,11 @@ +join (INNER, REPLICATED): + tpcds:store_returns:sf3000.0 + join (INNER, REPLICATED): + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + tpcds:household_demographics:sf3000.0 + tpcds:income_band:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/85.join_ordering b/presto-tpcds/src/test/resources/join_ordering/85.join_ordering new file mode 100644 index 0000000000000..9ed68ed0c8f88 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/85.join_ordering @@ -0,0 +1,15 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:customer_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_page:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:reason:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/86.join_ordering b/presto-tpcds/src/test/resources/join_ordering/86.join_ordering new file mode 100644 index 0000000000000..068d0cc29d7f0 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/86.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/87.join_ordering b/presto-tpcds/src/test/resources/join_ordering/87.join_ordering new file mode 100644 index 0000000000000..1a22af51be33d --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/87.join_ordering @@ -0,0 +1,15 @@ +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 +join (INNER, PARTITIONED): + tpcds:customer:sf3000.0 + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/88.join_ordering b/presto-tpcds/src/test/resources/join_ordering/88.join_ordering new file mode 100644 index 0000000000000..d373c3ba00b89 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/88.join_ordering @@ -0,0 +1,63 @@ +cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + cross join: + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:store:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/89.join_ordering b/presto-tpcds/src/test/resources/join_ordering/89.join_ordering new file mode 100644 index 0000000000000..de95e55f48f36 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/89.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:item:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/90.join_ordering b/presto-tpcds/src/test/resources/join_ordering/90.join_ordering new file mode 100644 index 0000000000000..d27a9f119bea2 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/90.join_ordering @@ -0,0 +1,15 @@ +cross join: + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:web_page:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:household_demographics:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:web_page:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:household_demographics:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/91.join_ordering b/presto-tpcds/src/test/resources/join_ordering/91.join_ordering new file mode 100644 index 0000000000000..a47dade58b36c --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/91.join_ordering @@ -0,0 +1,13 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:customer_address:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_returns:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:customer:sf3000.0 + tpcds:customer_demographics:sf3000.0 + tpcds:household_demographics:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:call_center:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/92.join_ordering b/presto-tpcds/src/test/resources/join_ordering/92.join_ordering new file mode 100644 index 0000000000000..e48a18627cf2b --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/92.join_ordering @@ -0,0 +1,11 @@ +cross join: + join (RIGHT, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/93.join_ordering b/presto-tpcds/src/test/resources/join_ordering/93.join_ordering new file mode 100644 index 0000000000000..9ac87443422bf --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/93.join_ordering @@ -0,0 +1,5 @@ +join (INNER, REPLICATED): + join (LEFT, PARTITIONED): + tpcds:store_sales:sf3000.0 + tpcds:store_returns:sf3000.0 + tpcds:reason:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/94.join_ordering b/presto-tpcds/src/test/resources/join_ordering/94.join_ordering new file mode 100644 index 0000000000000..89de5a1050297 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/94.join_ordering @@ -0,0 +1,13 @@ +cross join: + join (LEFT, PARTITIONED): + join (LEFT, PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_site:sf3000.0 + tpcds:customer_address:sf3000.0 + tpcds:web_sales:sf3000.0 + tpcds:web_returns:sf3000.0 + values diff --git a/presto-tpcds/src/test/resources/join_ordering/95.join_ordering b/presto-tpcds/src/test/resources/join_ordering/95.join_ordering new file mode 100644 index 0000000000000..18acd801f01cd --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/95.join_ordering @@ -0,0 +1,17 @@ +semijoin (PARTITIONED): + semijoin (PARTITIONED): + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:web_site:sf3000.0 + tpcds:customer_address:sf3000.0 + join (INNER, PARTITIONED): + tpcds:web_sales:sf3000.0 + tpcds:web_sales:sf3000.0 + join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:web_sales:sf3000.0 + tpcds:web_returns:sf3000.0 + tpcds:web_sales:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/96.join_ordering b/presto-tpcds/src/test/resources/join_ordering/96.join_ordering new file mode 100644 index 0000000000000..ff4e17145ddfa --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/96.join_ordering @@ -0,0 +1,7 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:time_dim:sf3000.0 + tpcds:household_demographics:sf3000.0 + tpcds:store:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/97.join_ordering b/presto-tpcds/src/test/resources/join_ordering/97.join_ordering new file mode 100644 index 0000000000000..d1215baa50102 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/97.join_ordering @@ -0,0 +1,7 @@ +join (FULL, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/98.join_ordering b/presto-tpcds/src/test/resources/join_ordering/98.join_ordering new file mode 100644 index 0000000000000..82d420eef21d2 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/98.join_ordering @@ -0,0 +1,5 @@ +join (INNER, PARTITIONED): + join (INNER, REPLICATED): + tpcds:store_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:item:sf3000.0 diff --git a/presto-tpcds/src/test/resources/join_ordering/99.join_ordering b/presto-tpcds/src/test/resources/join_ordering/99.join_ordering new file mode 100644 index 0000000000000..83be9042eb445 --- /dev/null +++ b/presto-tpcds/src/test/resources/join_ordering/99.join_ordering @@ -0,0 +1,9 @@ +join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + join (INNER, REPLICATED): + tpcds:catalog_sales:sf3000.0 + tpcds:date_dim:sf3000.0 + tpcds:ship_mode:sf3000.0 + tpcds:warehouse:sf3000.0 + tpcds:call_center:sf3000.0