Skip to content

Commit 1cb3a81

Browse files
Add files via upload
1 parent 2f2a53a commit 1cb3a81

File tree

1 file changed

+152
-0
lines changed

1 file changed

+152
-0
lines changed

SQLQuery_SQL_CQL_Comparison.sql

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
--use flightsDB
2+
--go
3+
4+
--1. Delay general report by airline
5+
6+
--SQL SERVER (SQL)
7+
SELECT f.flight_ID as [Fligth ID], f.date as [Date], f.Flight_number as [Flight Number],
8+
f.origin_airport as [Origin Airport], f.Departure_delay as [Departure delay], f.destination_airport as [Destination Airport], f.Arrival_delay as [Arrival delay],
9+
f.delay, ROUND(((f.Departure_delay)+(f.Arrival_delay))/2,0) as [Average delay], al.Airline
10+
FROM airport a
11+
INNER JOIN flights f
12+
ON a.airport_code = f.destination_airport
13+
INNER JOIN airlines al
14+
ON al.airline_code = f.airline_code
15+
WHERE al.Airline_code='AA'
16+
ORDER BY [Average delay] DESC;
17+
18+
--NEO4J (CQL)
19+
/*
20+
MATCH (a:Airport)<-[:LANDS_AT]-(f:Flight)-[:OPERATED_BY]->(al:Airlines)
21+
WHERE al.id = 'AA'
22+
RETURN f.id as `Fligth ID`, f.date as `Date`, f.flight_number as `Flight Number`,
23+
f.origin_airport as `Origin Airport`, f.departure_delay as `Departure delay`,
24+
f.destination_airport as `Destination Airport`, f.arrival_delay as `Arrival delay`,
25+
f.delay, toInteger((f.departure_delay + f.arrival_delay) / 2) as `Average delay`,
26+
al.airline as `Airline`
27+
ORDER BY `Average delay` DESC
28+
*/
29+
30+
31+
--2. Number of flights by airport
32+
33+
--SQL SERVER (SQL)
34+
SELECT f.origin_airport as Airport, a.airport, COUNT(f.origin_airport) AS num_flights
35+
FROM flights f
36+
INNER JOIN airport a
37+
ON f.origin_airport = a.airport_code
38+
GROUP BY f.origin_airport, a.airport
39+
ORDER BY num_flights DESC;
40+
41+
--NEO4J (CQL)
42+
/*
43+
MATCH (f:Flight)-[:TAKES_OFF_FROM]->(a:Airport)
44+
RETURN f.origin_airport as Airport, a.airport as airport, count(f.origin_airport) as num_flights
45+
ORDER BY num_flights DESC
46+
*/
47+
48+
49+
--3. What airlines are using the flight number 1495 and where?
50+
51+
--SQL SERVER (SQL)
52+
SELECT DISTINCT flights.date, airlines.airline
53+
FROM flights
54+
JOIN airlines
55+
ON flights.airline_code = airlines.airline_code
56+
WHERE flights.flight_number = '1495';
57+
58+
--NEO4J (CQL)
59+
60+
/*
61+
MATCH (f:Flight)-[:OPERATED_BY]->(a:Airlines)
62+
WHERE f.flight_number = 1495
63+
RETURN DISTINCT f.date as date, a.id as airline
64+
*/
65+
66+
67+
--4.TOP 5 ailines with more delayed flights
68+
69+
--SQL SERVER (SQL)
70+
SELECT TOP 5 COUNT(*) AS num_delays, al.airline_code, al.airline
71+
FROM flights
72+
inner join airlines al
73+
ON flights.airline_code = al.airline_code
74+
WHERE flights.delay_minutes > 0
75+
GROUP BY al.airline_code, al.airline
76+
ORDER BY num_delays DESC;
77+
78+
--NEO4J (CQL)
79+
80+
/*
81+
MATCH (f:Flight)-[:OPERATED_BY]->(a:Airlines)
82+
WHERE f.delay_minutes > 0
83+
WITH COUNT(*) AS num_delays, a.id AS airline_code, a.airline AS airline
84+
ORDER BY num_delays DESC
85+
RETURN airline_code, airline, num_delays
86+
LIMIT 5
87+
*/
88+
89+
90+
--5. Which airline has the highest average delay time for flights departing from New York's JFK airport?
91+
92+
--SQL SERVER (SQL)
93+
SELECT TOP 5 al.airline, AVG(f.departure_delay) AS avg_delay
94+
FROM airlines al
95+
INNER JOIN flights f
96+
ON al.airline_code = f.airline_code
97+
WHERE f.origin_airport = 'JFK' AND f.departure_delay IS NOT NULL
98+
GROUP BY airline
99+
ORDER BY avg_delay DESC
100+
101+
--NEO4J (CQL)
102+
103+
/*
104+
MATCH (a:Airlines)<-[:OPERATED_BY]-(f:Flight {origin_airport: 'JFK'})
105+
WHERE f.departure_delay IS NOT NULL
106+
WITH a.airline AS airline, AVG(f.departure_delay) AS avg_delay
107+
ORDER BY avg_delay DESC
108+
RETURN airline, avg_delay
109+
LIMIT 5
110+
*/
111+
112+
--6. Average distance trip by airline
113+
114+
--SQL SERVER (SQL)
115+
SELECT f.airline_code, a.airline, avg(f.distance) as Average_distance
116+
FROM flights f
117+
INNER JOIN airlines a
118+
ON a.airline_code=f.airline_code
119+
GROUP BY f.airline_code, a.airline
120+
ORDER BY Average_distance DESC
121+
122+
--NEO4J (CQL)
123+
124+
/*
125+
MATCH (a:Airlines)<-[:OPERATED_BY]-(f:Flight)
126+
WITH a.id AS airline_code, a.airline AS airline, AVG(f.distance) AS average_distance
127+
ORDER BY average_distance DESC
128+
RETURN airline_code, airline, average_distance
129+
*/
130+
131+
--7. Cancellation percentage per airline
132+
133+
--SQL SERVER (SQL)
134+
SELECT f.airline_code, a.airline,
135+
(COUNT(CASE WHEN f.delay_id != 'N' THEN 1 END)) as Delayed,
136+
COUNT(*) as Total_flights,
137+
ROUND(CAST(COUNT(CASE WHEN f.delay_id != 'N' THEN 1 END) AS FLOAT) / COUNT(*),2) * 100 as [Delay percentage (%)]
138+
FROM flights f
139+
INNER JOIN airlines a
140+
ON a.airline_code=f.airline_code
141+
GROUP BY f.airline_code, a.airline
142+
ORDER BY [Delay percentage (%)] DESC
143+
144+
/*
145+
MATCH (f:Flight)-[:OPERATED_BY]->(a:Airlines)
146+
WITH a.id AS airline_code, a.airline AS airline,
147+
COUNT(CASE WHEN f.delay_id <> 'N' THEN 1 END) AS delayed,
148+
COUNT(*) AS total_flights
149+
RETURN airline_code, airline, delayed, total_flights, (toFloat(delayed) / total_flights) * 100 AS `Delay percentage (%)`
150+
ORDER BY (`Delay percentage (%)`) desc
151+
LIMIT 5
152+
*/

0 commit comments

Comments
 (0)