From f773412b7920044aadf5628b536c5522df2a7bd8 Mon Sep 17 00:00:00 2001 From: JPL-ST-MAC-035 Date: Sun, 26 Nov 2023 09:52:54 -0800 Subject: [PATCH] Done SQL3 --- Consecutive Numbers.sql | 7 +++++++ Dynamic Pivoting of a Table.sql | 12 ++++++++++++ Number of Passengers in Each Bus.sql | 14 ++++++++++++++ User Activity.sql | 5 +++++ 4 files changed, 38 insertions(+) create mode 100644 Consecutive Numbers.sql create mode 100644 Dynamic Pivoting of a Table.sql create mode 100644 Number of Passengers in Each Bus.sql create mode 100644 User Activity.sql diff --git a/Consecutive Numbers.sql b/Consecutive Numbers.sql new file mode 100644 index 0000000..77255f5 --- /dev/null +++ b/Consecutive Numbers.sql @@ -0,0 +1,7 @@ +# Write your MySQL query statement below +WITH CTE AS (SELECT *, LEAD(num, 1) OVER() AS next_1, LEAD(num, 2) OVER() AS next_2 +FROM logs) +SELECT DISTINCT num AS ConsecutiveNums +FROM CTE +WHERE num = next_1 +AND num = next_2; diff --git a/Dynamic Pivoting of a Table.sql b/Dynamic Pivoting of a Table.sql new file mode 100644 index 0000000..f89dbe6 --- /dev/null +++ b/Dynamic Pivoting of a Table.sql @@ -0,0 +1,12 @@ +CREATE PROCEDURE PivotProducts() +BEGIN + # Write your MySQL query statement below. + SET SESSION GROUP_CONCAT_MAX_LEN = 1000000; + SET @sql = null; + SELECT GROUP_CONCAT(DISTINCT CONCAT('SUM(IF(store = "',store,'", price,null))', store))INTO @sql + FROM Products; + SET @sql=CONCAT('SELECT product_id, ', @sql, ' FROM Products GROUP BY 1'); + PREPARE STATEMENT FROM @sql; + EXECUTE STATEMENT; + DEALLOCATE PREPARE STATEMENT; +END \ No newline at end of file diff --git a/Number of Passengers in Each Bus.sql b/Number of Passengers in Each Bus.sql new file mode 100644 index 0000000..f419a9a --- /dev/null +++ b/Number of Passengers in Each Bus.sql @@ -0,0 +1,14 @@ +# Write your MySQL query statement below +WITH CTE AS ( + SELECT p.passenger_id, min(b.arrival_time) AS arrival_time FROM Passengers p + INNER JOIN Buses b + ON p.arrival_time <= b.arrival_time + GROUP BY p.passenger_id +) + +SELECT b.bus_id, COUNT(CTE.arrival_time) AS passengers_CNT +FROM Buses b +LEFT JOIN CTE +ON b.arrival_time = CTE.arrival_time +GROUP BY b.bus_id +ORDER BY b.bus_id; \ No newline at end of file diff --git a/User Activity.sql b/User Activity.sql new file mode 100644 index 0000000..dfc17e9 --- /dev/null +++ b/User Activity.sql @@ -0,0 +1,5 @@ +# Write your MySQL query statement below +SELECT activity_date AS day, COUNT(DISTINCT user_id) AS active_users +FROM activity +WHERE activity_date > '2019-06-27' AND activity_date <= '2019-07-27' +GROUP BY activity_date; \ No newline at end of file