From e63ef79d1ce0fb00c12468e3d8d2ce05a9ed4152 Mon Sep 17 00:00:00 2001 From: Sucharitha Date: Sat, 19 Apr 2025 23:08:57 -0400 Subject: [PATCH] Assignment-one updations --- 02_activities/assignments/ER_Diagram.png | Bin 0 -> 32962 bytes 02_activities/assignments/assignment1.sql | 55 ++++++++++++++++------ 2 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 02_activities/assignments/ER_Diagram.png diff --git a/02_activities/assignments/ER_Diagram.png b/02_activities/assignments/ER_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2739d2930fda23cd599b745eb1c8928ce9e43c GIT binary patch literal 32962 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 A-v9sr literal 0 HcmV?d00001 diff --git a/02_activities/assignments/assignment1.sql b/02_activities/assignments/assignment1.sql index 2e89fa7af..7c3a94f89 100644 --- a/02_activities/assignments/assignment1.sql +++ b/02_activities/assignments/assignment1.sql @@ -1,24 +1,23 @@ /* ASSIGNMENT 1 */ /* 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. */ - +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. */ -- option 1 - +select * from customer_purchases where product_id = 4 or product_id = 9; -- option 2 - +select * 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), @@ -27,32 +26,45 @@ filtered by vendor IDs between 8 and 10 (inclusive) using either: 2. one condition using BETWEEN */ -- option 1 - +select * , (quantity * cost_to_customer_per_qty) as price from customer_purchases where vendor_id >= 8 AND vendor_id <= 10; -- option 2 - +select * , (quantity * cost_to_customer_per_qty) as price from customer_purchases where vendor_id BETWEEN 8 and 10; --CASE /* 1. Products can be sold by the individual unit or by bulk measures like lbs. or oz. Using the product table, write a query that outputs the product_id and product_name 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 '%pepper%' 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 v.vendor_id, v.vendor_name,v.vendor_type, v.vendor_owner_first_name, v.vendor_owner_last_name ,vb.booth_number +,vb.market_Date from vendor v inner join vendor_booth_assignments vb +on v.vendor_id = vb.vendor_id +order by v.vendor_name, vb.market_Date; /* SECTION 3 */ @@ -60,7 +72,10 @@ 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 v.vendor_id,v.vendor_name,count(vb.booth_number) +from vendor v inner join vendor_booth_assignments vb +on v.vendor_id = vb.vendor_id +group by v.vendor_id,v.vendor_name ; /* 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 @@ -68,7 +83,11 @@ 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 c.customer_first_name,c.customer_last_name , sum(quantity * cost_to_customer_per_qty) as money_spent from customer c +inner join customer_purchases cp on c.customer_id = cp.customer_id +group by c.customer_first_name, c.customer_last_name +having money_spent > 2000 +order by c.customer_last_name, c.customer_first_name; --Temp Table /* 1. Insert the original vendor table into a temp.new_vendor and then add a 10th vendor: @@ -81,7 +100,13 @@ When inserting the new vendor, you need to appropriately align the columns to be -> To insert the new row use VALUES, specifying the value you want for each column: VALUES(col1,col2,col3,col4,col5) */ +drop table if exists temp.new_vendor; +--make the TABLE +CREATE TEMP TABLE temp.new_vendor AS +--definition of the table +SELECT * FROM vendor; +insert into temp.new_vendor values (10, 'Thomas Superfood Store', 'Fresh Focused' ,'Thomas', 'Rosenthal'); -- Date @@ -90,7 +115,7 @@ 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 customer_id, strftime('%m', market_date) as month , strftime( '%Y', market_Date) as year , market_Date from customer_purchases; /* 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. @@ -98,3 +123,5 @@ Remember that money spent is quantity*cost_to_customer_per_qty. HINTS: you will need to AGGREGATE, GROUP BY, and filter... but remember, STRFTIME returns a STRING for your WHERE statement!! */ +select customer_id, strftime('%m', market_date) as month , strftime( '%Y', market_Date) as year , sum(quantity * cost_to_Customer_per_qty) as money_spent from customer_purchases +where month = '04' and year= '2022' group by customer_id;