Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/lab-java-normalization-ddl-aggregation.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions Solutions/airline_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
INSERT INTO customers (id, name, status, total_mileage) VALUES
(1, 'Agustine Riviera', 'Silver', 115235),
(2, 'Alaina Sepulvida', NULL, 6008),
(3, 'Tom Jones', 'Gold', 205767);

INSERT INTO aircrafts (id, name, total_seats) VALUES
(1, 'Boeing 747', 400),
(2, 'Airbus A330', 236),
(3, 'Boeing 777', 264);

INSERT INTO flights (flight_number, aircraft_id, mileage) VALUES
('DL143', 1, 135),
('DL122', 2, 4370),
('DL53', 3, 2078);

INSERT INTO bookings (id, customer_id, flight_number) VALUES
(1, 1, 'DL143'),
(2, 1, 'DL122'),
(3, 2, 'DL122'),
(4, 3, 'DL53');
38 changes: 38 additions & 0 deletions Solutions/airline_queries.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
-- Total number of flights
SELECT COUNT(DISTINCT flight_number) FROM flights;

-- Average flight distance
SELECT AVG(mileage) FROM flights;

-- Average number of seats per aircraft
SELECT AVG(total_seats) FROM aircrafts;

-- Average miles flown by customers, grouped by status
SELECT status, AVG(total_mileage) FROM customers GROUP BY status;

-- Max miles flown by customers, grouped by status
SELECT status, MAX(total_mileage) FROM customers GROUP BY status;

-- Number of aircrafts with "Boeing" in their name
SELECT COUNT(*) FROM aircrafts WHERE name LIKE '%Boeing%';

-- Flights with distance between 300 and 2000 miles
SELECT * FROM flights WHERE mileage BETWEEN 300 AND 2000;

-- Average flight distance booked, grouped by customer status
SELECT c.status, AVG(f.mileage)
FROM bookings b
JOIN customers c ON b.customer_id = c.id
JOIN flights f ON b.flight_number = f.flight_number
GROUP BY c.status;

-- Most booked aircraft among Gold status members
SELECT a.name, COUNT(*) AS total_bookings
FROM bookings b
JOIN customers c ON b.customer_id = c.id
JOIN flights f ON b.flight_number = f.flight_number
JOIN aircrafts a ON f.aircraft_id = a.id
WHERE c.status = 'Gold'
GROUP BY a.name
ORDER BY total_bookings DESC
LIMIT 1;
27 changes: 27 additions & 0 deletions Solutions/airline_schema.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(100),
status VARCHAR(20),
total_mileage INT
);

CREATE TABLE aircrafts (
id INT PRIMARY KEY,
name VARCHAR(100),
total_seats INT
);

CREATE TABLE flights (
flight_number VARCHAR(10) PRIMARY KEY,
aircraft_id INT,
mileage INT,
FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id)
);

CREATE TABLE bookings (
id INT PRIMARY KEY,
customer_id INT,
flight_number VARCHAR(10),
FOREIGN KEY (customer_id) REFERENCES customers(id),
FOREIGN KEY (flight_number) REFERENCES flights(flight_number)
);
15 changes: 15 additions & 0 deletions Solutions/blog_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-- Tabla authors
INSERT INTO authors (id, name) VALUES
(1, 'Maria Charlotte'),
(2, 'Juan Perez'),
(3, 'Gemma Alcocer');

-- Tabla blog_posts
INSERT INTO blog_posts (id, author_id, title, word_count, views) VALUES
(1, 1, 'Best Paint Colors', 814, 14),
(2, 2, 'Small Space Decorating Tips', 1146, 221),
(3, 1, 'Hot Accessories', 986, 105),
(4, 1, 'Mixing Textures', 765, 22),
(5, 2, 'Kitchen Refresh', 1242, 307),
(6, 1, 'Homemade Art Hacks', 1002, 193),
(7, 3, 'Refinishing Wood Floors', 1571, 7542);
13 changes: 13 additions & 0 deletions Solutions/blog_schema.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CREATE TABLE authors (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);

CREATE TABLE blog_posts (
id INT PRIMARY KEY,
author_id INT,
title VARCHAR(255),
word_count INT,
views INT,
FOREIGN KEY (author_id) REFERENCES authors(id)
);