Analyze key retail and supply chain performance indicators for a fictional enterprise.
- Counter – Overall Customer Count
- Counter – TPCH – Number Suppliers
- Map – National Revenue Map
- Bar- National Revenue Trends
- Table – Customer Value
- Line – Order Revenue
1. Counter – Overall Customer Count
SELECT COUNT(distinct(c_custkey)) FROM `samples`.`tpch`.`customer`
2. Counter – TPCH – Number Suppliers
SELECT COUNT(distinct(s_suppkey)) AS num_suppliers FROM `samples`.`tpch`.`supplier`
3. Map – National Revenue Map
SELECT initcap(n_name) AS `Nation`, SUM(l_extendedprice * (1 - l_discount) * (length(n_name)/100)) AS revenue FROM `samples`.`tpch`.`customer`, `samples`.`tpch`.`orders`, `samples`.`tpch`.`lineitem`, `samples`.`tpch`.`supplier`, `samples`.`tpch`.`nation`, `samples`.`tpch`.`region` WHERE c_custkey = o_custkey AND l_orderkey = o_orderkey AND l_suppkey = s_suppkey AND c_nationkey = s_nationkey AND s_nationkey = n_nationkey AND n_regionkey = r_regionkey GROUP BY INITCAP(n_name) ORDER BY revenue DESC;
4. Bar- National Revenue Trends
SELECT year(o_orderdate) AS year, n_name AS nation, sum(l_extendedprice * (1 - l_discount) * (((length(n_name))/100) + (year(o_orderdate)-1993)/100)) AS revenue FROM `samples`.`tpch`.`customer`, `samples`.`tpch`.`orders`, `samples`.`tpch`.`lineitem`, `samples`.`tpch`.`supplier`, `samples`.`tpch`.`nation`, `samples`.`tpch`.`region` WHERE c_custkey = o_custkey AND l_orderkey = o_orderkey AND l_suppkey = s_suppkey AND c_nationkey = s_nationkey AND s_nationkey = n_nationkey AND n_regionkey = r_regionkey AND n_name in ('ARGENTINA', 'UNITED KINGDOM', 'FRANCE','BRAZIL', 'CHINA', 'UNITED STATES', 'JAPAN', 'JORDAN') AND o_orderdate >= DATE '1994-01-01' GROUP BY 1,2 ORDER BY nation ASC LIMIT 1000;
5. Table – Customer Value
SELECT customer_id AS `Customer ID #`, concat( '<div class="bg-', CASE WHEN total_revenue BETWEEN 0 AND 1500000 THEN 'success' WHEN total_revenue BETWEEN 1500001 AND 3000000 THEN 'warning' WHEN total_revenue BETWEEN 3000001 AND 5000000 THEN 'danger' ELSE 'danger' END, ' text-center"> $', format_number(total_revenue, 0), '</div>' ) AS `Total Customer Revenue` FROM ( SELECT o_custkey AS customer_id, sum(o_totalprice) as total_revenue FROM `samples`.`tpch`.`orders` GROUP BY 1 HAVING total_revenue > 0 ) ORDER BY 1 LIMIT 400
6. Line – Order Revenue
SELECT o_orderdate AS Date, o_orderpriority AS Priority, sum(o_totalprice) AS `Total Price` FROM `samples`.`tpch`.`orders` WHERE o_orderdate > '1994-01-01' AND o_orderdate < '1994-01-31' GROUP BY 1, 2 ORDER BY 1, 2