-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile

-- This variant replaces the CASE statement from the Functional Query Definition with equivalent DECODE() syntax

SELECT
    o_year,
    sum(decode(nation, 'BRAZIL', volume, 0)) / sum(volume) as mkt_share
FROM (
         SELECT
             extract(YEAR FROM o_orderdate)     AS o_year,
             l_extendedprice * (1 - l_discount) AS volume,
             n2.n_name                          AS nation
         FROM
             part,
             supplier,
             lineitem,
             orders,
             customer,
             nation n1,
             nation n2,
             region
         WHERE
                 p_partkey = l_partkey
           AND s_suppkey = l_suppkey
           AND l_orderkey = o_orderkey
           AND o_custkey = c_custkey
           AND c_nationkey = n1.n_nationkey
           AND n1.n_regionkey = r_regionkey
           AND r_name = 'AMERICA'
           AND s_nationkey = n2.n_nationkey
           AND o_orderdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
           AND p_type = 'ECONOMY ANODIZED STEEL'
     ) AS all_nations
GROUP BY
    o_year
ORDER BY
    o_year
