From 9c7306025ee052870bef6b46c6feadf83096c055 Mon Sep 17 00:00:00 2001 From: ruokun-ai <45320479+ruokun-ai@users.noreply.github.com> Date: Mon, 11 May 2026 03:41:49 -0400 Subject: [PATCH 1/3] Section 1_Prompt 3 Added explanations for Type 1 and Type 2 slowly changing dimensions, including their designs and column details. --- .../Microcredential_Cohort/Assignment2.md | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/02_activities/assignments/Microcredential_Cohort/Assignment2.md b/02_activities/assignments/Microcredential_Cohort/Assignment2.md index d91d3c9d3..a95b3a3eb 100644 --- a/02_activities/assignments/Microcredential_Cohort/Assignment2.md +++ b/02_activities/assignments/Microcredential_Cohort/Assignment2.md @@ -56,7 +56,30 @@ The store wants to keep customer addresses. Propose two architectures for the CU **HINT:** search type 1 vs type 2 slowly changing dimensions. ``` -Your answer... +Type 1 slowly changing dimension: Overwrite design. If the customer moves or updates their address, the existing row is updated with the new address. +Columns: +- customer_address_key +- customer_id +- street +- city +- province +- postal_code +- country + +Type 2 slowly changing dimension: history-retaining design, it will retain changes. It preserves historical changes by storing multiple versions of the customer address. +Columns: +- customer_address_key +- customer_id +- street +- city +- province +- postal_code +- country +- start_date +- end_date +- is_current + +Overall, Type 1 is best when only the most recent customer information is needed, while Type 2 is more suitable when historical tracking and reporting are important. ``` *** From cb2fa363b9555bb62d6ae62c1bfd5ef66156672c Mon Sep 17 00:00:00 2001 From: ruokun-ai <45320479+ruokun-ai@users.noreply.github.com> Date: Mon, 11 May 2026 15:35:47 -0400 Subject: [PATCH 2/3] add ERD files --- .../Microcredential_Cohort/ERD_prompt1.pdf | Bin 0 -> 39918 bytes .../Microcredential_Cohort/ERD_prompt2.pdf | Bin 0 -> 45091 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 02_activities/assignments/Microcredential_Cohort/ERD_prompt1.pdf create mode 100644 02_activities/assignments/Microcredential_Cohort/ERD_prompt2.pdf diff --git a/02_activities/assignments/Microcredential_Cohort/ERD_prompt1.pdf b/02_activities/assignments/Microcredential_Cohort/ERD_prompt1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3b1666efe5a5276c975e82856388cfd63fb5390e GIT binary patch literal 39918 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 literal 0 HcmV?d00001 diff --git a/02_activities/assignments/Microcredential_Cohort/ERD_prompt2.pdf b/02_activities/assignments/Microcredential_Cohort/ERD_prompt2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ee35a964fdf33d43bd53005c9f26b9afbe60129f GIT binary patch literal 45091 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 Date: Mon, 11 May 2026 18:19:31 -0400 Subject: [PATCH 3/3] Add assignment2 with query update --- .../Microcredential_Cohort/assignment2.sql | 544 +++++++++++------- 1 file changed, 344 insertions(+), 200 deletions(-) diff --git a/02_activities/assignments/Microcredential_Cohort/assignment2.sql b/02_activities/assignments/Microcredential_Cohort/assignment2.sql index 4079c18ae..495372407 100644 --- a/02_activities/assignments/Microcredential_Cohort/assignment2.sql +++ b/02_activities/assignments/Microcredential_Cohort/assignment2.sql @@ -1,200 +1,344 @@ -/* ASSIGNMENT 2 */ ---Please write responses between the QUERY # and END QUERY blocks -/* SECTION 2 */ - --- COALESCE -/* 1. Our favourite manager wants a detailed long list of products, but is afraid of tables! -We tell them, no problem! We can produce a list with all of the appropriate details. - -Using the following syntax you create our super cool and not at all needy manager a list: - -SELECT -product_name || ', ' || product_size|| ' (' || product_qty_type || ')' -FROM product - - -But wait! The product table has some bad data (a few NULL values). -Find the NULLs and then using COALESCE, replace the NULL with a blank for the first column with -nulls, and 'unit' for the second column with nulls. - -**HINT**: keep the syntax the same, but edited the correct components with the string. -The `||` values concatenate the columns into strings. -Edit the appropriate columns -- you're making two edits -- and the NULL rows will be fixed. -All the other rows will remain the same. */ ---QUERY 1 - - - - ---END QUERY - - ---Windowed Functions -/* 1. Write a query that selects from the customer_purchases table and numbers each customer’s -visits to the farmer’s market (labeling each market date with a different number). -Each customer’s first visit is labeled 1, second visit is labeled 2, etc. - -You can either display all rows in the customer_purchases table, with the counter changing on -each new market date for each customer, or select only the unique market dates per customer -(without purchase details) and number those visits. -HINT: One of these approaches uses ROW_NUMBER() and one uses DENSE_RANK(). -Filter the visits to dates before April 29, 2022. */ ---QUERY 2 - - - - ---END QUERY - - -/* 2. Reverse the numbering of the query so each customer’s most recent visit is labeled 1, -then write another query that uses this one as a subquery (or temp table) and filters the results to -only the customer’s most recent visit. -HINT: Do not use the previous visit dates filter. */ ---QUERY 3 - - - - ---END QUERY - - -/* 3. Using a COUNT() window function, include a value along with each row of the -customer_purchases table that indicates how many different times that customer has purchased that product_id. - -You can make this a running count by including an ORDER BY within the PARTITION BY if desired. -Filter the visits to dates before April 29, 2022. */ ---QUERY 4 - - - - ---END QUERY - - --- String manipulations -/* 1. Some product names in the product table have descriptions like "Jar" or "Organic". -These are separated from the product name with a hyphen. -Create a column using SUBSTR (and a couple of other commands) that captures these, but is otherwise NULL. -Remove any trailing or leading whitespaces. Don't just use a case statement for each product! - -| product_name | description | -|----------------------------|-------------| -| Habanero Peppers - Organic | Organic | - -Hint: you might need to use INSTR(product_name,'-') to find the hyphens. INSTR will help split the column. */ ---QUERY 5 - - - - ---END QUERY - - -/* 2. Filter the query to show any product_size value that contain a number with REGEXP. */ ---QUERY 6 - - - - ---END QUERY - - --- UNION -/* 1. Using a UNION, write a query that displays the market dates with the highest and lowest total sales. - -HINT: There are a possibly a few ways to do this query, but if you're struggling, try the following: -1) Create a CTE/Temp Table to find sales values grouped dates; -2) Create another CTE/Temp table with a rank windowed function on the previous query to create -"best day" and "worst day"; -3) Query the second temp table twice, once for the best day, once for the worst day, -with a UNION binding them. */ ---QUERY 7 - - - - ---END QUERY - - - -/* SECTION 3 */ - --- Cross Join -/*1. Suppose every vendor in the `vendor_inventory` table had 5 of each of their products to sell to **every** -customer on record. How much money would each vendor make per product? -Show this by vendor_name and product name, rather than using the IDs. - -HINT: Be sure you select only relevant columns and rows. -Remember, CROSS JOIN will explode your table rows, so CROSS JOIN should likely be a subquery. -Think a bit about the row counts: how many distinct vendors, product names are there (x)? -How many customers are there (y). -Before your final group by you should have the product of those two queries (x*y). */ ---QUERY 8 - - - - ---END QUERY - - --- INSERT -/*1. Create a new table "product_units". -This table will contain only products where the `product_qty_type = 'unit'`. -It should use all of the columns from the product table, as well as a new column for the `CURRENT_TIMESTAMP`. -Name the timestamp column `snapshot_timestamp`. */ ---QUERY 9 - - - - ---END QUERY - - -/*2. Using `INSERT`, add a new row to the product_units table (with an updated timestamp). -This can be any product you desire (e.g. add another record for Apple Pie). */ ---QUERY 10 - - - - ---END QUERY - - --- DELETE -/* 1. Delete the older record for whatever product you added. - -HINT: If you don't specify a WHERE clause, you are going to have a bad time.*/ ---QUERY 11 - - - - ---END QUERY - - --- UPDATE -/* 1.We want to add the current_quantity to the product_units table. -First, add a new column, current_quantity to the table using the following syntax. - -ALTER TABLE product_units -ADD current_quantity INT; - -Then, using UPDATE, change the current_quantity equal to the last quantity value from the vendor_inventory details. - -HINT: This one is pretty hard. -First, determine how to get the "last" quantity per product. -Second, coalesce null values to 0 (if you don't have null values, figure out how to rearrange your query so you do.) -Third, SET current_quantity = (...your select statement...), remembering that WHERE can only accommodate one column. -Finally, make sure you have a WHERE statement to update the right row, - you'll need to use product_units.product_id to refer to the correct row within the product_units table. -When you have all of these components, you can run the update statement. */ ---QUERY 12 - - - - ---END QUERY - - - +/* ASSIGNMENT 2 */ +--Please write responses between the QUERY # and END QUERY blocks +/* SECTION 2 */ + +-- COALESCE +/* 1. Our favourite manager wants a detailed long list of products, but is afraid of tables! +We tell them, no problem! We can produce a list with all of the appropriate details. + +Using the following syntax you create our super cool and not at all needy manager a list: + +SELECT +product_name || ', ' || product_size|| ' (' || product_qty_type || ')' +FROM product + + +But wait! The product table has some bad data (a few NULL values). +Find the NULLs and then using COALESCE, replace the NULL with a blank for the first column with +nulls, and 'unit' for the second column with nulls. + +**HINT**: keep the syntax the same, but edited the correct components with the string. +The `||` values concatenate the columns into strings. +Edit the appropriate columns -- you're making two edits -- and the NULL rows will be fixed. +All the other rows will remain the same. */ +--QUERY 1 +SELECT +product_name || ', ' || COALESCE(product_size,'')|| ' (' || COALESCE(product_qty_type, 'unit')|| ')' +FROM product; +--END QUERY + + +--Windowed Functions +/* 1. Write a query that selects from the customer_purchases table and numbers each customer’s +visits to the farmer’s market (labeling each market date with a different number). +Each customer’s first visit is labeled 1, second visit is labeled 2, etc. + +You can either display all rows in the customer_purchases table, with the counter changing on +each new market date for each customer, or select only the unique market dates per customer +(without purchase details) and number those visits. +HINT: One of these approaches uses ROW_NUMBER() and one uses DENSE_RANK(). +Filter the visits to dates before April 29, 2022. */ +--QUERY 2 +SELECT + customer_id, + market_date, + ROW_NUMBER() OVER ( + PARTITION BY customer_id + ORDER BY market_date + ) AS visit_number +FROM ( + SELECT DISTINCT + customer_id, + market_date + FROM customer_purchases + WHERE market_date < '2022-04-29' +) AS unique_customer_visits +ORDER BY customer_id, market_date; +--END QUERY + + +/* 2. Reverse the numbering of the query so each customer’s most recent visit is labeled 1, +then write another query that uses this one as a subquery (or temp table) and filters the results to +only the customer’s most recent visit. +HINT: Do not use the previous visit dates filter. */ +--QUERY 3 +SELECT + customer_id, + market_date, + reverse_visit_number +FROM ( + SELECT + customer_id, + market_date, + ROW_NUMBER() OVER ( + PARTITION BY customer_id + ORDER BY market_date DESC + ) AS reverse_visit_number + FROM ( + SELECT DISTINCT + customer_id, + market_date + FROM customer_purchases + ) AS unique_customer_visits +) AS ranked_customer_visits +WHERE reverse_visit_number = 1 +ORDER BY customer_id; +--END QUERY + + +/* 3. Using a COUNT() window function, include a value along with each row of the +customer_purchases table that indicates how many different times that customer has purchased that product_id. + +You can make this a running count by including an ORDER BY within the PARTITION BY if desired. +Filter the visits to dates before April 29, 2022. */ +--QUERY 4 +SELECT + product_id, + vendor_id, + market_date, + customer_id, + quantity, + cost_to_customer_per_qty, + transaction_time, + COUNT(*) OVER ( + PARTITION BY customer_id, product_id + ) AS times_customer_purchased_product +FROM customer_purchases +WHERE market_date < '2022-04-29' +ORDER BY customer_id, product_id, market_date, transaction_time; +--END QUERY + + +-- String manipulations +/* 1. Some product names in the product table have descriptions like "Jar" or "Organic". +These are separated from the product name with a hyphen. +Create a column using SUBSTR (and a couple of other commands) that captures these, but is otherwise NULL. +Remove any trailing or leading whitespaces. Don't just use a case statement for each product! + +| product_name | description | +|----------------------------|-------------| +| Habanero Peppers - Organic | Organic | + +Hint: you might need to use INSTR(product_name,'-') to find the hyphens. INSTR will help split the column. */ +--QUERY 5 +SELECT + product_id, + product_name, + product_size, + product_category_id, + product_qty_type, + CASE + WHEN TRIM(SUBSTR(product_name, INSTR(product_name, '-') + 1)) + IN ('Organic', 'Jar') + THEN + TRIM(SUBSTR(product_name, INSTR(product_name, '-') + 1)) + ELSE NULL + END AS description +FROM product +ORDER BY product_id; +--END QUERY + + +/* 2. Filter the query to show any product_size value that contain a number with REGEXP. */ +--QUERY 6 +SELECT * +FROM product +WHERE product_size REGEXP '[0-9]' +ORDER BY product_id; +--END QUERY + + +-- UNION +/* 1. Using a UNION, write a query that displays the market dates with the highest and lowest total sales. + +HINT: There are a possibly a few ways to do this query, but if you're struggling, try the following: +1) Create a CTE/Temp Table to find sales values grouped dates; +2) Create another CTE/Temp table with a rank windowed function on the previous query to create +"best day" and "worst day"; +3) Query the second temp table twice, once for the best day, once for the worst day, +with a UNION binding them. */ +--QUERY 7 +WITH daily_sales AS ( + SELECT + market_date, + SUM(quantity * cost_to_customer_per_qty) AS total_sales + FROM customer_purchases + GROUP BY market_date +), + +ranked_sales AS ( + SELECT + market_date, + total_sales, + RANK() OVER ( + ORDER BY total_sales DESC + ) AS best_day_rank, + RANK() OVER ( + ORDER BY total_sales ASC + ) AS worst_day_rank + FROM daily_sales +) + +SELECT + 'best day' AS sales_type, + market_date, + total_sales +FROM ranked_sales +WHERE best_day_rank = 1 + +UNION + +SELECT + 'worst day' AS sales_type, + market_date, + total_sales +FROM ranked_sales +WHERE worst_day_rank = 1 + +ORDER BY total_sales DESC; +--END QUERY + + + +/* SECTION 3 */ + +-- Cross Join +/*1. Suppose every vendor in the `vendor_inventory` table had 5 of each of their products to sell to **every** +customer on record. How much money would each vendor make per product? +Show this by vendor_name and product name, rather than using the IDs. + +HINT: Be sure you select only relevant columns and rows. +Remember, CROSS JOIN will explode your table rows, so CROSS JOIN should likely be a subquery. +Think a bit about the row counts: how many distinct vendors, product names are there (x)? +How many customers are there (y). +Before your final group by you should have the product of those two queries (x*y). */ +--QUERY 8 +SELECT + v.vendor_name, + p.product_name, + SUM(5 * vi.original_price) AS total_money +FROM ( + SELECT DISTINCT + vendor_id, + product_id, + original_price + FROM vendor_inventory +) AS vi + CROSS JOIN customer AS c + JOIN vendor AS v + ON vi.vendor_id = v.vendor_id + JOIN product AS p + ON vi.product_id = p.product_id +GROUP BY + v.vendor_name, product_name +ORDER BY + v.vendor_name, p.product_name; +--END QUERY + + +-- INSERT +/*1. Create a new table "product_units". +This table will contain only products where the `product_qty_type = 'unit'`. +It should use all of the columns from the product table, as well as a new column for the `CURRENT_TIMESTAMP`. +Name the timestamp column `snapshot_timestamp`. */ +--QUERY 9 +DROP TABLE IF EXISTS product_units; +CREATE TABLE product_units AS + +SELECT + *, + CURRENT_TIMESTAMP AS snapshot_timestamp +FROM product +WHERE product_qty_type = 'unit'; + +SELECT * FROM product_units +ORDER BY product_id; +--END QUERY + + +/*2. Using `INSERT`, add a new row to the product_units table (with an updated timestamp). +This can be any product you desire (e.g. add another record for Apple Pie). */ +--QUERY 10 +INSERT INTO product_units ( + product_id, + product_name, + product_size, + product_category_id, + product_qty_type, + snapshot_timestamp +) +VALUES ( + 6, 'Cut Zinnias Bouquet', 'large', 5, 'unit', CURRENT_TIMESTAMP +); + +SELECT * FROM product_units +ORDER BY product_id; +--END QUERY + + +-- DELETE +/* 1. Delete the older record for whatever product you added. + +HINT: If you don't specify a WHERE clause, you are going to have a bad time.*/ +--QUERY 11 +/* If using timestamp it will delete all records with same timestamp. +DELETE FROM product_units +WHERE product_name = 'Cut Zinnias Bouquet' + AND snapshot_timestamp = ( + SELECT MIN(snapshot_timestamp) + FROM product_units + WHERE product_name = 'Cut Zinnias Bouquet' + ); +*/ +DELETE FROM product_units +WHERE product_name = 'Cut Zinnias Bouquet' + AND rowid <> ( + SELECT MAX(rowid) + FROM product_units + WHERE product_name = 'Cut Zinnias Bouquet' + ); + +SELECT * FROM product_units +ORDER BY product_id; +--END QUERY + + +-- UPDATE +/* 1.We want to add the current_quantity to the product_units table. +First, add a new column, current_quantity to the table using the following syntax. + +ALTER TABLE product_units +ADD current_quantity INT; + +Then, using UPDATE, change the current_quantity equal to the last quantity value from the vendor_inventory details. + +HINT: This one is pretty hard. +First, determine how to get the "last" quantity per product. +Second, coalesce null values to 0 (if you don't have null values, figure out how to rearrange your query so you do.) +Third, SET current_quantity = (...your select statement...), remembering that WHERE can only accommodate one column. +Finally, make sure you have a WHERE statement to update the right row, + you'll need to use product_units.product_id to refer to the correct row within the product_units table. +When you have all of these components, you can run the update statement. */ +--QUERY 12 +ALTER TABLE product_units +ADD current_quantity INT; + +UPDATE product_units + +SET current_quantity = COALESCE( + ( + SELECT quantity + FROM vendor_inventory vi + WHERE vi.product_id = product_units.product_id + ORDER BY market_date DESC + LIMIT 1 + ), + 0 +); + +SELECT * FROM product_units +ORDER BY product_id; +--END QUERY + + +