diff options
author | Maxim Yurchuk <maxim-yurchuk@ydb.tech> | 2024-11-20 17:37:57 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-20 17:37:57 +0000 |
commit | f76323e9b295c15751e51e3443aa47a36bee8023 (patch) | |
tree | 4113c8cad473a33e0f746966e0cf087252fa1d7a /yql/essentials/tests/sql/suites/tpch/q20.sql | |
parent | 753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff) | |
parent | a7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff) | |
download | ydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz |
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'yql/essentials/tests/sql/suites/tpch/q20.sql')
-rw-r--r-- | yql/essentials/tests/sql/suites/tpch/q20.sql | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/yql/essentials/tests/sql/suites/tpch/q20.sql b/yql/essentials/tests/sql/suites/tpch/q20.sql new file mode 100644 index 0000000000..3272f866d6 --- /dev/null +++ b/yql/essentials/tests/sql/suites/tpch/q20.sql @@ -0,0 +1,83 @@ + +-- TPC-H/TPC-R Potential Part Promotion Query (Q20) +-- TPC TPC-H Parameter Substitution (Version 2.17.2 build 0) +-- using 1680793381 as a seed to the RNG + +$border = Date("1993-01-01"); +$threshold = ( +select + 0.5 * sum(l_quantity) as threshold, + l_partkey as l_partkey, + l_suppkey as l_suppkey +from + plato.lineitem +where + cast(l_shipdate as timestamp) >= $border + and cast(l_shipdate as timestamp) < ($border + Interval("P365D")) +group by + l_partkey, l_suppkey +); + +$parts = ( +select + p_partkey +from + plato.part +where + StartsWith(p_name, 'maroon') +); + +$join1 = ( +select + ps.ps_suppkey as ps_suppkey, + ps.ps_availqty as ps_availqty, + ps.ps_partkey as ps_partkey +from + plato.partsupp as ps +join any + $parts as p +on + ps.ps_partkey = p.p_partkey +); + +$join2 = ( +select + distinct(j.ps_suppkey) as ps_suppkey +from + $join1 as j +join any + $threshold as t +on + j.ps_partkey = t.l_partkey and j.ps_suppkey = t.l_suppkey +where + j.ps_availqty > t.threshold +); + +$join3 = ( +select + j.ps_suppkey as ps_suppkey, + s.s_name as s_name, + s.s_address as s_address, + s.s_nationkey as s_nationkey +from + $join2 as j +join any + plato.supplier as s +on + j.ps_suppkey = s.s_suppkey +); + +select + j.s_name as s_name, + j.s_address as s_address +from + $join3 as j +join + plato.nation as n +on + j.s_nationkey = n.n_nationkey +where + n.n_name = 'VIETNAM' +order by + s_name; + |