From 2d8d1ab3886455fd583dba533c96a00f5fe4f72a Mon Sep 17 00:00:00 2001 From: chude onyeibo Date: Fri, 21 Nov 2025 20:41:29 +0100 Subject: [PATCH] assignment 1 complete --- .../Cohort_8/Assignment_One_Chude.drawio.png | Bin 0 -> 31270 bytes .../assignments/Cohort_8/assignment1.sql | 118 ++++++++++++++++-- 2 files changed, 106 insertions(+), 12 deletions(-) create mode 100644 02_activities/assignments/Cohort_8/Assignment_One_Chude.drawio.png diff --git a/02_activities/assignments/Cohort_8/Assignment_One_Chude.drawio.png b/02_activities/assignments/Cohort_8/Assignment_One_Chude.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf352344f193fb7e2963465c335e8dc0f0333d3 GIT binary patch literal 31270 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 z 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 a*;bmqXNQWC;Zg9)wo@lC=$AV7H~t6snxU%z literal 0 HcmV?d00001 diff --git a/02_activities/assignments/Cohort_8/assignment1.sql b/02_activities/assignments/Cohort_8/assignment1.sql index c992e3205..ec76662cf 100644 --- a/02_activities/assignments/Cohort_8/assignment1.sql +++ b/02_activities/assignments/Cohort_8/assignment1.sql @@ -2,20 +2,33 @@ /* SECTION 2 */ ---SELECT + /* 1. Write a query that returns everything in the customer table. */ +select * from customer /* 2. Write a query that displays all of the columns and 10 rows from the cus- tomer table, -sorted by customer_last_name, then customer_first_ name. */ +sorted by customer_last_name, then customer_first_ name. */ +select * from customer +order by customer_last_name,customer_first_name +limit 10 + --WHERE /* 1. Write a query that returns all customer purchases of product IDs 4 and 9. */ - +select product_id, +vendor_id, +market_date, +customer_id, +quantity, +cost_to_customer_per_qty, +transaction_time + from customer_purchases +where product_id in ('4','9') /*2. Write a query that returns all customer purchases and a new calculated column 'price' (quantity * cost_to_customer_per_qty), filtered by customer IDs between 8 and 10 (inclusive) using either: @@ -23,10 +36,28 @@ filtered by customer IDs between 8 and 10 (inclusive) using either: 2. one condition using BETWEEN */ -- option 1 - +select product_id, +vendor_id, +market_date, +customer_id, +quantity, +cost_to_customer_per_qty, +transaction_time, +(quantity * cost_to_customer_per_qty) as price + from customer_purchases +where customer_id in ('8','10') -- option 2 - +select product_id, +vendor_id, +market_date, +customer_id, +quantity, +cost_to_customer_per_qty, +transaction_time, +(quantity * cost_to_customer_per_qty) as price + from customer_purchases +where customer_id between '8'and '10' --CASE @@ -35,18 +66,32 @@ Using the product table, write a query that outputs the product_id and product_n columns and add a column called prod_qty_type_condensed that displays the word “unit” if the product_qty_type is “unit,” and otherwise displays the word “bulk.” */ - +select +product_id, +product_name, +case when product_qty_type='unit' then 'unit' +else 'bulk' end as prod_qty_type_condensed + from product /* 2. We want to flag all of the different types of pepper products that are sold at the market. add a column to the previous query called pepper_flag that outputs a 1 if the product_name contains the word “pepper” (regardless of capitalization), and otherwise outputs 0. */ - + select +product_id, +product_name, +case when product_qty_type='unit' then 'unit' +else 'bulk' end as prod_qty_type_condensed, +case when product_name like '%Peppers%' then '1' +else '0' end as pepper_flag + from product --JOIN /* 1. Write a query that INNER JOINs the vendor table to the vendor_booth_assignments table on the vendor_id field they both have in common, and sorts the result by vendor_name, then market_date. */ - + select market_date,v.* from vendor v + inner join vendor_booth_assignments vba on v.vendor_id=vba.vendor_id + order by vendor_name,market_date ASC @@ -56,7 +101,12 @@ vendor_id field they both have in common, and sorts the result by vendor_name, t /* 1. Write a query that determines how many times each vendor has rented a booth at the farmer’s market by counting the vendor booth assignments per vendor_id. */ - + select + vendor_id, + count(booth_number) as count_of_rent + from vendor_booth_assignments + group by vendor_id + order by count_of_rent DESC /* 2. The Farmer’s Market Customer Appreciation Committee wants to give a bumper sticker to everyone who has ever spent more than $2000 at the market. Write a query that generates a list @@ -65,6 +115,18 @@ of customers for them to give stickers to, sorted by last name, then first name. HINT: This query requires you to join two tables, use an aggregate function, and use the HAVING keyword. */ + select +customer_first_name, +customer_last_name, +c.customer_id, +(quantity * cost_to_customer_per_qty) as total + from customer c +inner join customer_purchases cp on c.customer_id=cp.customer_id +group by + customer_first_name, +customer_last_name, +c.customer_id + having (quantity * cost_to_customer_per_qty) > '2000' --Temp Table /* 1. Insert the original vendor table into a temp.new_vendor and then add a 10th vendor: @@ -86,11 +148,43 @@ VALUES(col1,col2,col3,col4,col5) HINT: you might need to search for strfrtime modifers sqlite on the web to know what the modifers for month and year are! */ - +select + distinct + customer_id, + product_name, + strftime('%m', market_date) as mon,---- this did not produced the desired result hence the substring used + substr(market_date,6,2) as month, + substr(market_date,1,4) as year, + strftime('%Y', market_date) as year2 + from customer_purchases a + inner join product b on a.product_id=b.product_id /* 2. Using the previous query as a base, determine how much money each customer spent in April 2022. -Remember that money spent is quantity*cost_to_customer_per_qty. - +Remember that money spent is quantity*cost_to_customer_per_qty. */ + +with base as (select +customer_first_name, +customer_last_name, +c.customer_id, +substr(market_date,6,2) as mon, +market_date, +(quantity * cost_to_customer_per_qty) as total + from customer c +inner join customer_purchases cp on c.customer_id=cp.customer_id +group by + customer_first_name, +customer_last_name, +market_date, +c.customer_id) +select customer_first_name, +customer_last_name, +customer_id, +sum(total) + from base +where strftime('%m', market_date) ='04' +group by customer_last_name, +customer_id HINTS: you will need to AGGREGATE, GROUP BY, and filter... but remember, STRFTIME returns a STRING for your WHERE statement!! */ +