From 4548a56cf237f2842ee35462687236a27fe98732 Mon Sep 17 00:00:00 2001 From: Eliot Date: Fri, 18 Apr 2025 20:23:02 -0400 Subject: [PATCH] Completed Assignment 1, section 1-3 --- .../Assignment 1 - Section 1 drawio.png | Bin 0 -> 50416 bytes 02_activities/assignments/assignment1.sql | 103 +++++++++++++++--- 2 files changed, 90 insertions(+), 13 deletions(-) create mode 100644 02_activities/assignments/Assignment 1 - Section 1 drawio.png diff --git a/02_activities/assignments/Assignment 1 - Section 1 drawio.png b/02_activities/assignments/Assignment 1 - Section 1 drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0a027fc2deff8c6af84429576870cfec876542 GIT binary patch literal 50416 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 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 @@ -38,19 +55,44 @@ filtered by vendor IDs between 8 and 10 (inclusive) using either: 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 UPPER(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.* + ,vba.booth_number + ,vba.market_date +FROM vendor v +INNER JOIN vendor_booth_assignments vba + ON v.vendor_id = vba.vendor_id +ORDER BY vendor_name + ,market_date; @@ -59,7 +101,14 @@ vendor_id field they both have in common, and sorts the result by vendor_name, t -- AGGREGATE /* 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_name + ,COUNT(vba.market_date) +FROM vendor v +INNER JOIN vendor_booth_assignments vba + ON v.vendor_id = vba.vendor_id +GROUP BY v.vendor_name +ORDER BY vendor_name + ,market_date; /* 2. The Farmer’s Market Customer Appreciation Committee wants to give a bumper @@ -67,7 +116,16 @@ sticker to everyone who has ever spent more than $2000 at the market. Write a qu 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_last_name, c.customer_first_name +HAVING money_spent > 2000 +ORDER BY c.customer_last_name, c.customer_first_name; --Temp Table @@ -81,7 +139,18 @@ 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; + +CREATE TABLE temp.new_vendor AS +SELECT * +FROM vendor; + +INSERT INTO temp.new_vendor (vendor_id, vendor_name, vendor_type, vendor_owner_first_name, vendor_owner_last_name) +VALUES (10, 'Thomass Superfood Store', 'Fresh Focused', 'Thomas', 'Rosenthal'); + +SELECT * +FROM temp.new_vendor; -- Date @@ -89,7 +158,10 @@ 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 'purchase_month' + ,strftime('%Y', market_date) AS 'purchase_year' +FROM customer_purchases; /* 2. Using the previous query as a base, determine how much money each customer spent in April 2022. @@ -97,4 +169,9 @@ 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 + ,SUM(quantity * cost_to_customer_per_qty) AS 'money_spent' +FROM customer_purchases +WHERE strftime('%m', market_date) = '04' + AND strftime('%Y', market_date) = '2022' +GROUP BY customer_id;