0% found this document useful (0 votes)
18 views14 pages

DBMS Assignment 4

This document contains SQL queries and code related to an airline database management system assignment. It includes queries to find airport arrival counts, average flight delays by airline, total baggage weight by passenger, monthly booking totals, passengers with multiple security checks, flights by non-Chinese airports, passengers on Poland flights, overweight baggage details, average ticket prices by airline, boarding passes by passenger, baggage details by flight, top airports by bookings, and average checked baggage weight by flight.

Uploaded by

animkiyoko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views14 pages

DBMS Assignment 4

This document contains SQL queries and code related to an airline database management system assignment. It includes queries to find airport arrival counts, average flight delays by airline, total baggage weight by passenger, monthly booking totals, passengers with multiple security checks, flights by non-Chinese airports, passengers on Poland flights, overweight baggage details, average ticket prices by airline, boarding passes by passenger, baggage details by flight, top airports by bookings, and average checked baggage weight by flight.

Uploaded by

animkiyoko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

DBMS ASSIGNMENT 4

1.

2.
3.

4.
5.
6.

7.
8.

9.
10.
11.
12.

13.
My code
SELECT
a.airport_name,
COUNT(f.flight_id) AS flights_arriving
FROM
airport a
INNER JOIN
flights f ON a.airport_id = f.arrival_airport_id
GROUP BY
a.airport_name;

SELECT a.airline_name, AVG(EXTRACT(EPOCH FROM


(CAST (f.actual_departure AS TIMESTAMP) - CAST (f.scheduled_departure AS
TIMESTAMP)))/360)
FROM flights f
JOIN airline a ON f.airline_id = a.airline_id
where f.status IN ('Arrived', 'Delayed')
GROUP BY a.airline_name;

SELECT p.first_name, p.last_name,


SUM(b.weight_in_kg) AS total_baggage_weight
FROM
passengers p
JOIN
booking bkg ON p.passenger_id = bkg.passenger_id
JOIN
baggage b ON bkg.booking_id = b.booking_id
WHERE
p.gender = 'Male'
AND p.date_of_birth BETWEEN '1990-01-01' AND '2000-12-31'
GROUP BY
p.passenger_id, p.first_name, p.last_name;

SELECT
EXTRACT(MONTH FROM b.created_at) AS booking_month,
SUM(b.price) AS total_monthly_sales
FROM
booking AS b
GROUP BY
booking_month
ORDER BY
booking_month ASC;

SELECT
p.first_name,
p.last_name,
COUNT(sc.security_check_id) AS security_check_count
FROM
passengers p
INNER JOIN
security_check sc ON p.passenger_id = sc.passenger_id
GROUP BY
p.passenger_id
HAVING
COUNT(sc.security_check_id) > 2;

SELECT
ap.city,
COUNT(f.flight_id) AS number_of_flights
FROM
flights f
JOIN
airport ap ON f.departure_airport_id = ap.airport_id
WHERE
ap.country <> 'China'
GROUP BY
ap.city
ORDER BY
ap.city ASC;

SELECT
COUNT(DISTINCT p.passenger_id) AS number_of_passengers
FROM
passengers p
JOIN
booking b ON p.passenger_id = b.passenger_id
JOIN
booking_flight bf ON b.booking_id = bf.booking_id
JOIN
flights f ON bf.flight_id = f.flight_id
JOIN
airport a ON f.departure_airport_id = a.airport_id
WHERE
a.country = 'Poland';

SELECT
p.first_name,
p.last_name,
b.weight_in_kg,
sc.check_result
FROM
baggage b
JOIN
booking bk ON b.booking_id = bk.booking_id
JOIN
passengers p ON bk.passenger_id = p.passenger_id
JOIN
security_check sc ON p.passenger_id = sc.passenger_id
AND bk.booking_id = bk.booking_id
WHERE
b.weight_in_kg > 20.00
AND sc.check_result = 'Checked';

SELECT
al.airline_name,
AVG(bk.price) AS average_ticket_price
FROM
airline al
JOIN
flights f ON al.airline_id = f.airline_id
JOIN
booking_flight bf ON f.flight_id = bf.flight_id
JOIN
booking bk ON bf.booking_id = bk.booking_id
GROUP BY
al.airline_name;

SELECT
p.first_name ||''|| p.last_name AS full_name,
COUNT(bp.boarding_pass_id) AS boarding_pass_count
FROM
passengers p
JOIN
booking bk ON p.passenger_id = bk.passenger_id
JOIN
boarding_pass bp ON bk.booking_id = bp.booking_id
GROUP BY
p.passenger_id;

SELECT
f.flight_no,
SUM(CASE WHEN bc.check_result = 'Checked' THEN b.weight_in_kg ELSE 0 END) AS
checked_baggage_weight,
SUM(b.weight_in_kg) AS total_baggage_weight,
(COUNT(CASE WHEN bc.check_result = 'Checked' THEN 1 END) * 100.0 /
COUNT(b.baggage_id))
AS percentage_passed_checks
FROM
flights f
JOIN
booking_flight bf ON f.flight_id = bf.flight_id
JOIN
baggage b ON bf.booking_id = b.booking_id
LEFT JOIN
baggage_check bc ON b.booking_id = bc.booking_id
GROUP BY
f.flight_no;
SELECT
ap.airport_name,
COUNT(DISTINCT bk.booking_id) AS booking_count
FROM
airport ap
JOIN
flights f ON ap.airport_id = f.departure_airport_id OR ap.airport_id = f.arrival_airport_id
JOIN
booking_flight bf ON f.flight_id = bf.flight_id
JOIN
booking bk ON bf.booking_id = bk.booking_id
GROUP BY
ap.airport_id
ORDER BY
booking_count DESC
LIMIT 5;

SELECT
f.flight_no,
AVG(b.weight_in_kg) AS average_checked_baggage_weight
FROM
flights f
JOIN
booking_flight bf ON f.flight_id = bf.flight_id
JOIN
booking bk ON bf.booking_id = bk.booking_id
JOIN
baggage b ON bk.booking_id = b.booking_id
JOIN
baggage_check bc ON b.booking_id = bc.booking_id
WHERE
bc.check_result = 'Checked'
GROUP BY
f.flight_no;

You might also like