You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-10-31 18:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			665 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			665 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
|  ------------------------------------------------------------------------------------------------//Q14
 | |
| SELECT 
 | |
| 	100.00 * SUM ( CASE 
 | |
| 		WHEN P_TYPE LIKE 'PROMO%%'
 | |
| 		THEN L_EXTENDEDPRICE*(1-L_DISCOUNT)
 | |
| 		ELSE 0
 | |
| 	END) / SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS PROMO_REVENUE
 | |
| FROM 
 | |
| 	LINEITEM,
 | |
| 	PART
 | |
| WHERE 
 | |
| 	L_PARTKEY = P_PARTKEY AND
 | |
| 	L_SHIPDATE >= date '1994-01-01' AND
 | |
| 	L_SHIPDATE < date '1994-01-01' + interval '1' month;
 | |
| 
 | |
| --------------------------------------------------------------------------------------------------//Q2
 | |
| SELECT 
 | |
| 	S_ACCTBAL,
 | |
| 	S_NAME,
 | |
| 	N_NAME,
 | |
| 	P_PARTKEY,
 | |
| 	P_MFGR,
 | |
| 	S_ADDRESS,
 | |
| 	S_PHONE,
 | |
| 	S_COMMENT
 | |
| FROM 
 | |
| 	PART,
 | |
| 	SUPPLIER,
 | |
| 	PARTSUPP,
 | |
| 	NATION,
 | |
| 	REGION
 | |
| WHERE 
 | |
| 	P_PARTKEY = PS_PARTKEY AND
 | |
| 	S_SUPPKEY = PS_SUPPKEY AND
 | |
| 	P_SIZE = 40 AND
 | |
| 	P_TYPE LIKE '%%NICKEL' AND
 | |
| 	S_NATIONKEY = N_NATIONKEY AND
 | |
| 	N_REGIONKEY = R_REGIONKEY AND
 | |
| 	R_NAME = 'AFRICA' AND
 | |
| 	PS_SUPPLYCOST = ( 
 | |
| 		SELECT
 | |
| 			MIN(PS_SUPPLYCOST)
 | |
| 			FROM PARTSUPP,
 | |
| 			SUPPLIER,
 | |
| 			NATION,
 | |
| 			REGION
 | |
| 				WHERE 
 | |
| 				P_PARTKEY	= PS_PARTKEY AND
 | |
| 				S_SUPPKEY 	= PS_SUPPKEY AND
 | |
| 				S_NATIONKEY = N_NATIONKEY AND
 | |
| 				N_REGIONKEY = R_REGIONKEY AND
 | |
| 				R_NAME = 'AFRICA'
 | |
| 				)
 | |
| ORDER BY 
 | |
| 	S_ACCTBAL DESC,
 | |
| 	N_NAME,
 | |
| 	S_NAME,
 | |
| 	P_PARTKEY;
 | |
| 
 | |
| -----------------------------------------------------------------------------------------//Q9
 | |
| SELECT 
 | |
| 	NATION,
 | |
| 	O_YEAR,
 | |
| 	SUM(AMOUNT) AS SUM_PROFIT
 | |
| FROM 
 | |
| 	( 
 | |
| 		SELECT 
 | |
| 			N_NAME AS NATION,
 | |
| 			extract (YEAR FROM O_ORDERDATE) AS O_YEAR,
 | |
| 			L_EXTENDEDPRICE * (1-L_DISCOUNT) - PS_SUPPLYCOST * L_QUANTITY AS AMOUNT
 | |
| 		FROM 
 | |
| 			PART,
 | |
| 			SUPPLIER,
 | |
| 			LINEITEM,
 | |
| 			PARTSUPP,
 | |
| 			ORDERS,
 | |
| 			NATION
 | |
| 		WHERE 
 | |
| 			S_SUPPKEY = L_SUPPKEY AND
 | |
| 			PS_SUPPKEY = L_SUPPKEY AND
 | |
| 			PS_PARTKEY = L_PARTKEY AND
 | |
| 			P_PARTKEY = L_PARTKEY AND 
 | |
| 			O_ORDERKEY = L_ORDERKEY AND
 | |
| 			S_NATIONKEY = N_NATIONKEY AND
 | |
| 			P_NAME LIKE '%%orchid%%'
 | |
| 	) PROFIT
 | |
| GROUP BY 
 | |
| 	NATION,
 | |
| 	O_YEAR
 | |
| ORDER BY 
 | |
| 	NATION,
 | |
| 	O_YEAR DESC;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q20
 | |
| SELECT 
 | |
| 	S_NAME,
 | |
| 	S_ADDRESS
 | |
| FROM 
 | |
| 	SUPPLIER,
 | |
| 	NATION
 | |
| WHERE 
 | |
| 	S_SUPPKEY IN ( 
 | |
| 		SELECT
 | |
| 			PS_SUPPKEY
 | |
| 		FROM
 | |
| 			PARTSUPP
 | |
| 		WHERE
 | |
| 			PS_PARTKEY in ( 
 | |
| 				SELECT P_PARTKEY
 | |
| 				FROM 
 | |
| 					PART
 | |
| 				WHERE 
 | |
| 					P_NAME like 'orchid%%'
 | |
| 			) 
 | |
| 	AND PS_AVAILQTY > ( 
 | |
| 		SELECT 
 | |
| 			0.5 * sum(L_QUANTITY)
 | |
| 		FROM 
 | |
| 			LINEITEM
 | |
| 		WHERE 
 | |
| 			L_PARTKEY = PS_PARTKEY AND
 | |
| 			L_SUPPKEY = PS_SUPPKEY AND
 | |
| 			L_SHIPDATE >= date '1995-01-01' AND
 | |
| 			L_SHIPDATE < date '1995-01-01' + interval '1' year
 | |
| 		)
 | |
| 	) 
 | |
| 	AND S_NATIONKEY = N_NATIONKEY AND
 | |
| 	N_NAME = 'KENYA'
 | |
| ORDER BY 
 | |
| 	S_NAME;
 | |
| 
 | |
| -------------------------------------------------------------------------------------------//Q6
 | |
| SELECT 
 | |
| 	SUM(L_EXTENDEDPRICE*L_DISCOUNT) AS REVENUE
 | |
| FROM 
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	L_SHIPDATE >= date '1997-01-01' AND
 | |
| 	L_SHIPDATE < date '1997-01-01' + interval '1' year AND
 | |
| 	L_DISCOUNT BETWEEN 0.03 - 0.01 AND 0.03 + 0.01 AND
 | |
| 	L_QUANTITY < 25;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q17
 | |
| SELECT 
 | |
| 	SUM(L_EXTENDEDPRICE)/7.0 AS AVG_YEARLY
 | |
| FROM 
 | |
| 	LINEITEM,
 | |
| 	PART
 | |
| WHERE 
 | |
| 	P_PARTKEY = L_PARTKEY AND
 | |
| 	P_BRAND = 'Brand#22' AND
 | |
| 	P_CONTAINER = 'JUMBO PACK' AND
 | |
| 	L_QUANTITY < ( 
 | |
| 		SELECT 
 | |
| 			0.2 * AVG(L_QUANTITY)
 | |
| 		FROM
 | |
| 			LINEITEM
 | |
| 		WHERE
 | |
| 			L_PARTKEY = P_PARTKEY
 | |
| 	);
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q18
 | |
| SELECT 
 | |
| 	C_NAME,
 | |
| 	C_CUSTKEY,
 | |
| 	O_ORDERKEY,
 | |
| 	O_ORDERDATE,
 | |
| 	O_TOTALPRICE,
 | |
| 	SUM(L_QUANTITY)
 | |
| FROM 
 | |
| 	CUSTOMER,
 | |
| 	ORDERS,
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	O_ORDERKEY IN ( 
 | |
| 		SELECT
 | |
| 			L_ORDERKEY
 | |
| 		FROM
 | |
| 			LINEITEM
 | |
| 		GROUP BY
 | |
| 			L_ORDERKEY HAVING 
 | |
| 				SUM(L_QUANTITY) > 318
 | |
| 	) 
 | |
| 	AND C_CUSTKEY = O_CUSTKEY 
 | |
| 	AND O_ORDERKEY = L_ORDERKEY
 | |
| GROUP 
 | |
| 	BY C_NAME,
 | |
| 	C_CUSTKEY,
 | |
| 	O_ORDERKEY,
 | |
| 	O_ORDERDATE,
 | |
| 	O_TOTALPRICE
 | |
| ORDER BY 
 | |
| 	O_TOTALPRICE DESC,
 | |
| 	O_ORDERDATE;
 | |
| 
 | |
| -------------------------------------------------------------------------------------------//Q8
 | |
| SELECT 
 | |
| 	O_YEAR,
 | |
| 	SUM (CASE 
 | |
| 			WHEN NATION = 'ROMANIA'
 | |
| 			THEN VOLUME
 | |
| 			ELSE 0
 | |
| 	END) / 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 = 'EUROPE' AND
 | |
| 			S_NATIONKEY =	N2.N_NATIONKEY AND
 | |
| 			O_ORDERDATE BETWEEN '1995-	01-01' AND '1996-12-31' AND
 | |
| 			P_TYPE = 'LARGE BRUSHED BRASS'
 | |
| 	) ALL_NATIONS
 | |
| GROUP BY 
 | |
| 	O_YEAR
 | |
| ORDER BY 
 | |
| 	O_YEAR;
 | |
| 
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q21
 | |
| SELECT 
 | |
| 	S_NAME,
 | |
| 	COUNT(*) AS NUMWAIT
 | |
| FROM 
 | |
| 	SUPPLIER,
 | |
| 	LINEITEM L1,
 | |
| 	ORDERS,
 | |
| 	NATION
 | |
| WHERE 
 | |
| 	S_SUPPKEY = L1.L_SUPPKEY AND
 | |
| 	O_ORDERKEY = L1.L_ORDERKEY AND
 | |
| 	O_ORDERSTATUS = 'F' AND
 | |
| 	L1.L_RECEIPTDATE > L1.L_COMMITDATE AND
 | |
| 	EXISTS ( 
 | |
| 		SELECT *
 | |
| 		FROM 
 | |
| 			LINEITEM L2
 | |
| 		WHERE 
 | |
| 			L2.L_ORDERKEY = L1.L_ORDERKEY AND
 | |
| 			L2.L_SUPPKEY <> L1.L_SUPPKEY
 | |
| 	) 
 | |
| 	AND NOT EXISTS ( 
 | |
| 		SELECT *
 | |
| 		FROM 
 | |
| 			LINEITEM L3
 | |
| 		WHERE 
 | |
| 			L3.L_ORDERKEY = L1.L_ORDERKEY AND
 | |
| 			L3.L_SUPPKEY <> L1.L_SUPPKEY AND
 | |
| 			L3.L_RECEIPTDATE > L3.L_COMMITDATE
 | |
| 	) 
 | |
| 	AND S_NATIONKEY = N_NATIONKEY AND
 | |
| 	N_NAME = 'IRAQ'
 | |
| GROUP BY 
 | |
| 	S_NAME
 | |
| ORDER BY 
 | |
| 	NUMWAIT DESC,
 | |
| 	S_NAME;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q13
 | |
| SELECT 
 | |
| 	C_COUNT,
 | |
| 	COUNT(*) AS CUSTDIST
 | |
| FROM 
 | |
| 	( 
 | |
| 		SELECT C_CUSTKEY,
 | |
| 		COUNT(O_ORDERKEY) C_COUNT
 | |
| 		FROM 
 | |
| 			CUSTOMER left outer join ORDERS on
 | |
| 				C_CUSTKEY = O_CUSTKEY AND
 | |
| 				O_COMMENT not like '%%express%%requests%%'
 | |
| 		GROUP BY 
 | |
| 			C_CUSTKEY
 | |
| 	) C_ORDERS
 | |
| GROUP BY 
 | |
| 	C_COUNT
 | |
| ORDER BY 
 | |
| 	CUSTDIST DESC,
 | |
| 	C_COUNT DESC;
 | |
| 
 | |
| ----------------------------------------------------------------------------------------------//Q3
 | |
| SELECT 
 | |
| 	L_ORDERKEY,
 | |
| 	SUM(L_EXTENDEDPRICE * (1-L_DISCOUNT)) AS REVENUE,
 | |
| 	O_ORDERDATE,
 | |
| 	O_SHIPPRIORITY
 | |
| FROM 
 | |
| 	CUSTOMER,
 | |
| 	ORDERS,
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	C_MKTSEGMENT = 'BUILDING' AND
 | |
| 	C_CUSTKEY = O_CUSTKEY AND
 | |
| 	L_ORDERKEY = O_ORDERKEY AND
 | |
| 	O_ORDERDATE < date '1995-03-03' AND
 | |
| 	L_SHIPDATE > date '1995-03-03'
 | |
| GROUP BY 
 | |
| 	L_ORDERKEY,
 | |
| 	O_ORDERDATE,
 | |
| 	O_SHIPPRIORITY
 | |
| ORDER BY 
 | |
| 	REVENUE DESC,
 | |
| 	O_ORDERDATE;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q22
 | |
| SELECT 
 | |
| 	CNTRYCODE,
 | |
| 	COUNT(*) NUMCUST,
 | |
| 	SUM(C_ACCTBAL) TOTACCTBAL
 | |
| FROM ( 
 | |
| 	SELECT 
 | |
| 		SUBSTR(C_PHONE,1,2) CNTRYCODE,
 | |
| 		C_ACCTBAL
 | |
| 	FROM 
 | |
| 		CUSTOMER
 | |
| 	WHERE 
 | |
| 		SUBSTR(C_PHONE,1,2) IN 
 | |
| 			('24', '28', '30', '18', '21', '23', '14') 
 | |
| 		AND C_ACCTBAL > ( 
 | |
| 			SELECT 
 | |
| 				AVG(C_ACCTBAL)
 | |
| 			FROM 
 | |
| 				CUSTOMER
 | |
| 			WHERE 
 | |
| 				C_ACCTBAL > 0.00 
 | |
| 				AND SUBSTR(C_PHONE,1,2) IN
 | |
| 					('24', '28', '30', '18', '21', '23', '14')
 | |
| 		) 
 | |
| 		AND NOT EXISTS ( 
 | |
| 			SELECT *
 | |
| 			FROM
 | |
| 				ORDERS
 | |
| 			WHERE
 | |
| 				O_CUSTKEY = C_CUSTKEY
 | |
| 		)
 | |
| ) CUSTSALE
 | |
| GROUP BY 
 | |
| 	CNTRYCODE
 | |
| ORDER BY 
 | |
| 	CNTRYCODE;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q16
 | |
| SELECT 
 | |
| 	P_BRAND,
 | |
| 	P_TYPE,
 | |
| 	P_SIZE,
 | |
| 	COUNT(DISTINCT PS_SUPPKEY) AS SUPPLIER_CNT
 | |
| FROM 
 | |
| 	PARTSUPP,
 | |
| 	PART
 | |
| WHERE 
 | |
| 	P_PARTKEY = PS_PARTKEY AND
 | |
| 	P_BRAND <> 'Brand#12' AND
 | |
| 	P_TYPE NOT LIKE 'SMALL BRUSHED%%' AND
 | |
| 	P_SIZE IN (36, 3, 24, 40, 37, 41, 15, 13) AND
 | |
| 	PS_SUPPKEY NOT IN ( 
 | |
| 		SELECT
 | |
| 			S_SUPPKEY
 | |
| 		FROM
 | |
| 			SUPPLIER
 | |
| 		WHERE
 | |
| 			S_COMMENT LIKE '%%Customer%%Complaints%%'
 | |
| 	)
 | |
| GROUP BY 
 | |
| 	P_BRAND,
 | |
| 	P_TYPE,
 | |
| 	P_SIZE
 | |
| ORDER BY 
 | |
| 	SUPPLIER_CNT DESC,
 | |
| 	P_BRAND,
 | |
| 	P_TYPE,
 | |
| 	P_SIZE;
 | |
| 
 | |
| -------------------------------------------------------------------------------------------//Q4
 | |
| SELECT 
 | |
| 	O_ORDERPRIORITY,
 | |
| 	COUNT(*) AS ORDER_COUNT
 | |
| FROM 
 | |
| 	ORDERS
 | |
| WHERE 
 | |
| 	O_ORDERDATE >= date '1993-05-01' AND
 | |
| 	O_ORDERDATE < date '1993-05-01' + interval '3' month
 | |
| 	AND EXISTS ( 
 | |
| 	SELECT 
 | |
| 		*
 | |
| 	FROM 
 | |
| 		LINEITEM
 | |
| 	WHERE 
 | |
| 		L_ORDERKEY = O_ORDERKEY AND
 | |
| 		L_COMMITDATE < L_RECEIPTDATE
 | |
| 				)
 | |
| GROUP BY 
 | |
| 	O_ORDERPRIORITY
 | |
| ORDER BY 
 | |
| 	O_ORDERPRIORITY;
 | |
| 
 | |
| --------------------------------------------------------------------------------------------------//Q11
 | |
| SELECT 
 | |
| 	PS_PARTKEY,
 | |
| 	SUM(PS_SUPPLYCOST * PS_AVAILQTY) AS VALUE
 | |
| FROM 
 | |
| 	PARTSUPP,
 | |
| 	SUPPLIER,
 | |
| 	NATION
 | |
| WHERE 
 | |
| 	PS_SUPPKEY = S_SUPPKEY AND
 | |
| 	S_NATIONKEY = N_NATIONKEY AND
 | |
| 	N_NAME = 'RUSSIA'
 | |
| GROUP BY 
 | |
| 	PS_PARTKEY HAVING 
 | |
| 		SUM(PS_SUPPLYCOST*PS_AVAILQTY) > ( 
 | |
| 			SELECT
 | |
| 				SUM(PS_SUPPLYCOST * PS_AVAILQTY) * 0.0000010000
 | |
| 			FROM 
 | |
| 				PARTSUPP,
 | |
| 				SUPPLIER,
 | |
| 				NATION
 | |
| 			WHERE 
 | |
| 				PS_SUPPKEY = S_SUPPKEY AND
 | |
| 			S_NATIONKEY =	N_NATIONKEY AND
 | |
| 			N_NAME = 'RUSSIA'
 | |
| 		)
 | |
| ORDER BY 
 | |
| 	VALUE DESC;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q15
 | |
| CREATE VIEW REVENUE0 (SUPPLIER_NO, TOTAL_REVENUE) AS
 | |
| 	SELECT 
 | |
| 		L_SUPPKEY,
 | |
| 		SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT))
 | |
| FROM 
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	L_SHIPDATE >= date '1993-01-01' AND
 | |
| 	L_SHIPDATE < date '1993-01-01' + interval '3' month
 | |
| GROUP BY 
 | |
| 	L_SUPPKEY;
 | |
| 
 | |
| SELECT 
 | |
| 	S_SUPPKEY,
 | |
| 	S_NAME,
 | |
| 	S_ADDRESS,
 | |
| 	S_PHONE,
 | |
| 	TOTAL_REVENUE
 | |
| FROM 
 | |
| 	SUPPLIER,
 | |
| 	REVENUE0
 | |
| WHERE 
 | |
| 	S_SUPPKEY = SUPPLIER_NO 
 | |
| 	AND TOTAL_REVENUE = ( 
 | |
| 		SELECT 
 | |
| 			MAX(TOTAL_REVENUE)
 | |
| 		FROM 
 | |
| 			REVENUE0
 | |
| 	)
 | |
| ORDER BY 
 | |
| 	S_SUPPKEY;
 | |
| 
 | |
| DROP VIEW REVENUE0;
 | |
| 
 | |
| ---------------------------------------------------------------------------------------------------//Q1
 | |
| SELECT 
 | |
| 	L_RETURNFLAG,
 | |
| 	L_LINESTATUS,
 | |
| 	SUM(L_QUANTITY) AS SUM_QTY,
 | |
| 	SUM(L_EXTENDEDPRICE) AS SUM_BASE_PRICE,
 | |
| 	SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS SUM_DISC_PRICE,
 | |
| 	SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX)) AS SUM_CHARGE,
 | |
| 	AVG(L_QUANTITY) AS AVG_QTY,
 | |
| 	AVG(L_EXTENDEDPRICE) AS AVG_PRICE,
 | |
| 	AVG(L_DISCOUNT) AS AVG_DISC,
 | |
| 	COUNT(*) AS COUNT_ORDER
 | |
| FROM 
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	L_SHIPDATE <= date '1998-12-01' - interval '73' day
 | |
| GROUP BY 
 | |
| 	L_RETURNFLAG,
 | |
| 	L_LINESTATUS
 | |
| ORDER BY 
 | |
| 	L_RETURNFLAG,
 | |
| 	L_LINESTATUS;
 | |
| 
 | |
| --------------------------------------------------------------------------------------------------//Q10
 | |
| SELECT 
 | |
| 	C_CUSTKEY,
 | |
| 	C_NAME,
 | |
| 	SUM(L_EXTENDEDPRICE * (1-L_DISCOUNT)) AS REVENUE,
 | |
| 	C_ACCTBAL,
 | |
| 	N_NAME,
 | |
| 	C_ADDRESS,
 | |
| 	C_PHONE,
 | |
| 	C_COMMENT
 | |
| FROM 
 | |
| 	CUSTOMER,
 | |
| 	ORDERS,
 | |
| 	LINEITEM,
 | |
| 	NATION
 | |
| WHERE 
 | |
| 	C_CUSTKEY = O_CUSTKEY AND
 | |
| 	L_ORDERKEY = O_ORDERKEY AND
 | |
| 	O_ORDERDATE >= date '1994-08-01' AND
 | |
| 	O_ORDERDATE < date '1997-08-01' + interval '3' month AND
 | |
| 	L_RETURNFLAG = 'R' AND
 | |
| 	C_NATIONKEY = N_NATIONKEY
 | |
| GROUP BY 
 | |
| 	C_CUSTKEY,
 | |
| 	C_NAME,
 | |
| 	C_ACCTBAL,
 | |
| 	C_PHONE,
 | |
| 	N_NAME,
 | |
| 	C_ADDRESS,
 | |
| 	C_COMMENT
 | |
| ORDER BY 
 | |
| 	REVENUE DESC;
 | |
| 
 | |
| ------------------------------------------------------------------------------------------------//Q19
 | |
| SELECT 
 | |
| 	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE
 | |
| FROM 
 | |
| 	LINEITEM,
 | |
| 	PART
 | |
| WHERE 
 | |
| 	(
 | |
| 		P_PARTKEY = L_PARTKEY AND
 | |
| 		P_BRAND = 'Brand#41' AND 
 | |
| 		P_CONTAINER IN ( 'SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') AND
 | |
| 		L_QUANTITY >= 3 AND L_QUANTITY <= 3 + 10 AND 
 | |
| 		P_SIZE BETWEEN 1 AND 5 AND
 | |
| 		L_SHIPMODE IN ('AIR', 'AIR REG') AND
 | |
| 		L_SHIPINSTRUCT = 'DELIVER IN PERSON'
 | |
| 	)
 | |
| 	OR
 | |
| 	( 
 | |
| 		P_PARTKEY = L_PARTKEY AND
 | |
| 		P_BRAND = 'Brand#33' AND
 | |
| 		P_CONTAINER IN ( 'MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') AND
 | |
| 		L_QUANTITY >= 14 AND L_QUANTITY <= 14 + 10 AND
 | |
| 		P_SIZE BETWEEN 1 AND 10 AND
 | |
| 		L_SHIPMODE IN ('AIR', 'AIR REG') AND
 | |
| 		L_SHIPINSTRUCT = 'DELIVER IN PERSON'
 | |
| 	)
 | |
| 	OR
 | |
| 	( 
 | |
| 		P_PARTKEY = L_PARTKEY AND
 | |
| 		P_BRAND = 'Brand#45' AND
 | |
| 		P_CONTAINER IN ( 'LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') AND
 | |
| 		L_QUANTITY >= 25 AND L_QUANTITY <= 25 + 10 AND
 | |
| 		P_SIZE BETWEEN 1 AND 15 AND
 | |
| 		L_SHIPMODE IN ('AIR', 'AIR REG') AND
 | |
| 		L_SHIPINSTRUCT = 'DELIVER IN PERSON'
 | |
| 	);
 | |
| 
 | |
| -----------------------------------------------------------------------------------------//Q5
 | |
| SELECT 
 | |
| 	N_NAME,
 | |
| 	SUM(L_EXTENDEDPRICE * (1-L_DISCOUNT)) AS REVENUE
 | |
| FROM 
 | |
| 	CUSTOMER,
 | |
| 	ORDERS,
 | |
| 	LINEITEM,
 | |
| 	SUPPLIER,
 | |
| 	NATION,
 | |
| 	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
 | |
| 	R_NAME = 'AFRICA' AND
 | |
| 	O_ORDERDATE >= date '1997-01-01' AND
 | |
| 	O_ORDERDATE < date '1997-01-01' + interval '1' year
 | |
| GROUP BY 
 | |
| 	N_NAME
 | |
| ORDER BY 
 | |
| 	REVENUE DESC;
 | |
| 
 | |
| --------------------------------------------------------------------------------------------//Q7
 | |
| SELECT 
 | |
| 	SUPP_NATION,
 | |
| 	CUST_NATION,
 | |
| 	L_YEAR, 
 | |
| 	SUM(VOLUME) AS REVENUE
 | |
| FROM ( 
 | |
| 		SELECT 
 | |
| 			N1.N_NAME AS SUPP_NATION,
 | |
| 			N2.N_NAME AS CUST_NATION,
 | |
| 			extract (YEAR FROM L_SHIPDATE) AS L_YEAR,
 | |
| 			L_EXTENDEDPRICE * (1-L_DISCOUNT) AS VOLUME
 | |
| 		FROM 
 | |
| 			SUPPLIER,
 | |
| 			LINEITEM,
 | |
| 			ORDERS,
 | |
| 			CUSTOMER,
 | |
| 			NATION N1,
 | |
| 			NATION N2
 | |
| 		WHERE 
 | |
| 			S_SUPPKEY = L_SUPPKEY AND
 | |
| 			O_ORDERKEY = L_ORDERKEY AND
 | |
| 			C_CUSTKEY = O_CUSTKEY AND
 | |
| 			S_NATIONKEY =	N1.N_NATIONKEY AND
 | |
| 			C_NATIONKEY =	N2.N_NATIONKEY 
 | |
| 			AND ( 
 | |
| 				(N1.N_NAME = 'CANADA' AND N2.N_NAME = 'ROMANIA')
 | |
| 				OR	(N1.N_NAME = 'ROMANIA' AND N2.N_NAME = 'CANADA')
 | |
| 				) 
 | |
| 				AND L_SHIPDATE BETWEEN '1995-01-01' AND '1996-12-31'
 | |
| 		) SHIPPING
 | |
| GROUP BY 
 | |
| 	SUPP_NATION,
 | |
| 	CUST_NATION,
 | |
| 	L_YEAR
 | |
| ORDER BY 
 | |
| 	SUPP_NATION,
 | |
| 	CUST_NATION,
 | |
| 	L_YEAR;
 | |
| 
 | |
| ---------------------------------------------------------------------------------------------------//Q12
 | |
| SELECT 
 | |
| 	L_SHIPMODE,
 | |
| 	SUM( CASE
 | |
| 			WHEN O_ORDERPRIORITY = '1-URGENT' 
 | |
| 				OR O_ORDERPRIORITY = '2-HIGH'
 | |
| 			THEN 1
 | |
| 			ELSE 0
 | |
| 	END) AS HIGH_LINE_COUNT,
 | |
| 	SUM( CASE 
 | |
| 			WHEN O_ORDERPRIORITY <> '1- URGENT' AND
 | |
| 			O_ORDERPRIORITY <> '2-HIGH'
 | |
| 			THEN 1
 | |
| 			ELSE 0
 | |
| 	END) AS LOW_LINE_COUNT
 | |
| FROM 
 | |
| 	ORDERS,
 | |
| 	LINEITEM
 | |
| WHERE 
 | |
| 	O_ORDERKEY = L_ORDERKEY AND
 | |
| 	L_SHIPMODE IN ('FOB','SHIP') AND
 | |
| 	L_COMMITDATE < L_RECEIPTDATE AND
 | |
| 	L_SHIPDATE < L_COMMITDATE AND
 | |
| 	L_RECEIPTDATE >= date '1994-01-01' AND
 | |
| 	L_RECEIPTDATE < date '1994-01-01' + interval '1' year
 | |
| GROUP BY 
 | |
| 	L_SHIPMODE
 | |
| ORDER BY 
 | |
| 	L_SHIPMODE;
 |