You are on page 1of 4

SQL Test - Kevin Wahyu Triwaldi - Technical

Product Manager
Part 1

1----------------------------------------------------------

SELECT *

FROM transactions

WHERE MONTHNAME(transaction_date) = 'February' and YEAR(transaction_date) = 2018 and status =


'SHIPPED';

2----------------------------------------------------------

SELECT *

FROM transactions

WHERE TIME(transaction_date) >= "00:00:00" AND TIME(transaction_date)<"09:00:00" ;

3----------------------------------------------------------

SELECT *

FROM transactions a

WHERE transaction_date = (

SELECT MAX( transaction_date )

FROM transactions b

WHERE a.vendor = b.vendor);

4----------------------------------------------------------

SELECT *

FROM transactions a

WHERE transaction_date = (

SELECT transaction_date

FROM transactions b

WHERE a.vendor = b.vendor

ORDER BY transaction_date DESC

LIMIT 1,1);

5----------------------------------------------------------
SELECT *, COUNT(transaction_date) AS Jumlah

FROM transactions WHERE status =

'CANCELLED' GROUP BY transaction_date;

6----------------------------------------------------------

SELECT customer_id , COUNT(customer_id) as 'Jumlah'

from transactions GROUP by customer_id HAVING COUNT(customer_id)>= 2 ;

7----------------------------------------------------------

SELECT vendor,count(status) AS 'Total Transaction' ,

CASE

WHEN COUNT( status="SHIPPED")>=2 AND COUNT( status="CANCELLED")>0 THEN "Superb"

WHEN COUNT( status="SHIPPED")>=2 AND COUNT( status="CANCELLED")>1 THEN "Good"

ELSE "Normal"

end as Category

FROM `transactions`

GROUP by vendor ;

8----------------------------------------------------------

SELECT

EXTRACT(hOUR FROM transaction_date)as 'Hour of the day' ,

COUNT(transaction_date) as 'Total Transaction'

FROM transactions GROUP BY EXTRACT(hOUR FROM transaction_date);

9----------------------------------------------------------

SELECT date(transaction_date) AS 'Dates',

COUNT(status) as Shipped

FROM transactions

WHERE status= 'SHIPPED'


GROUP by date(transaction_date);

SELECT date(transaction_date) AS 'Dates',

COUNT(status) as CANCELLED

FROM transactions

WHERE status= 'CANCELLED

GROUP by date(transaction_date);

SELECT date(transaction_date) AS 'Dates',

COUNT(status) as PROCESSING

FROM transactions

WHERE status!= 'SHIPPED' OR status!='CANCELLED'

GROUP by date(transaction_date);

10----------------------------------------------------------

SELECT AVG(datediff( transaction_date,(select transaction_date FROM transactions LIMIT 1,1) )) as


'Average Interval',

min(datediff( transaction_date,(select transaction_date FROM transactions LIMIT 1,1) )) as


'Minimum Interval',

max(datediff( transaction_date,(select transaction_date FROM transactions LIMIT 1,1) )) as


'Maximum Interval'

from transactions;

PART 2

1----------------------------------------------------------

SELECT product_name as 'Product Name', quantity*price as Value,

CASE

WHEN

quantity <=100 then (quantity*price)*0.02

else (quantity*price)*0.04
end

as 'Komisi' FROM `transaction_details` ;

2----------------------------------------------------------

SELECT sum(quantity)

as 'Total ' FROM `transaction_details`

where product_name like '%Indomie%';

3----------------------------------------------------------

SELECT product_name AS 'Product Name', MAX(trx_id) AS 'Last Transaction ID' FROM


`transaction_details` GROUP by product_name order by trx_id ASC;

You might also like