blob: 7a8a2a190e81b5cea04a14871ea68b18a02011bf [file] [log] [blame]
use dataverse tpch;
for $t in (
for $slnrcop in (
for $s in dataset("Supplier")
for $lnrcop in (
for $lnrco in (
for $l in dataset('LineItem')
for $nrco in (
for $o in dataset('Orders')
for $nrc in (
for $c in dataset('Customer')
for $nr in (
for $n1 in dataset('Nation')
for $r1 in dataset('Region')
where $n1.n_regionkey = $r1.r_regionkey and $r1.r_name = 'AMERICA'
return { "n_nationkey": $n1.n_nationkey }
)
where $c.c_nationkey = $nr.n_nationkey
return { "c_custkey": $c.c_custkey }
)
where $nrc.c_custkey = $o.o_custkey
return {
"o_orderdate" : $o.o_orderdate,
"o_orderkey": $o.o_orderkey
}
)
where $l.l_orderkey = $nrco.o_orderkey
and $nrco.o_orderdate >= '1995-01-01'
and $nrco.o_orderdate <= '1996-12-31'
return {
"o_orderdate": $nrco.o_orderdate,
"l_partkey": $l.l_partkey,
"l_discount": $l.l_discount,
"l_extendedprice": $l.l_extendedprice,
"l_suppkey": $l.l_suppkey
}
)
for $p in dataset("Part")
where $p.p_partkey = $lnrco.l_partkey and $p.p_type = 'ECONOMY ANODIZED STEEL'
return {
"o_orderdate": $lnrco.o_orderdate,
"l_discount": $lnrco.l_discount,
"l_extendedprice": $lnrco.l_extendedprice,
"l_suppkey": $lnrco.l_suppkey
}
)
where $s.s_suppkey = $lnrcop.l_suppkey
return {
"o_orderdate": $lnrcop.o_orderdate,
"l_discount": $lnrcop.l_discount,
"l_extendedprice": $lnrcop.l_extendedprice,
"l_suppkey": $lnrcop.l_suppkey,
"s_nationkey": $s.s_nationkey
}
)
for $n2 in dataset('Nation')
where $slnrcop.s_nationkey = $n2.n_nationkey
let $o_year := get-year($slnrcop.o_orderdate)
return {
"year": $o_year,
"revenue": $slnrcop.l_extendedprice *(1-$slnrcop.l_discount),
"s_name": $n2.n_name
}
)
group by $year := $t.year with $t
order by $year
return {
"year": $year,
"mkt_share": sum(for $i in $t return switch-case($i.s_name='BRAZIL', true, $i.revenue, false, 0.0))/
sum(for $i in $t return $i.revenue)
}