SQL Training:Exercises on Sub-Queries
Exercise 7:
1. Write a query to display American Airlines flight’s details.
2. Write a query to find which airline is starting from HYDERABAD.
3. Write a query to display Airline name in which contains more no of flights.
4. Write a query to display no of flights airlines wise.
5. Write a query to find which airline contains more than 5 flights.
6. Write a query to display British airways and Delta airlines flights details.
7. Write a query to display airlines details in which airline contains more than maximum no of flights in Delta Airlines.
8. Write a query to display flight details except Delta airlines.
9. Write a query to display total no of flights based on city from.
10. Write a query to display flights details reaching to New York City.
MY SOLUTIONS:
----------------------------------------------
----------------------------------------------
--SUBQUERY EXERCISE
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid = (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename = 'American Airlines')
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (SELECT f.Airlineid
FROM dbo.flights f
WHERE f.cityfrom LIKE 'HYD%')
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid = (SELECT X.TopAirlineid
FROM
(
SELECT TOP 1 f.Airlineid AS TopAirlineid,COUNT(f.flightid) AS FLIGHTCOUNT
FROM dbo.flights f
GROUP BY f.Airlineid
ORDER BY FLIGHTCOUNT DESC
) X
)
--NO NEED FOR SUBQUERY
/*SELECT f.Airlineid
,COUNT(f.flightid) AS FLIGHTSPERAIRLINE
FROM dbo.flights f
GROUP BY f.Airlineid
*/
SELECT f.Airlineid
,COUNT(f.flightid) AS FLIGHTSPERAIRLINE
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
GROUP BY a.airlineid )
GROUP BY f.Airlineid
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (
SELECT f.Airlineid AS TopAirlineid
FROM dbo.flights f
GROUP BY f.Airlineid
HAVING COUNT(f.flightid) > 5
)
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename IN ('British Airways','Delta Airlines')
)
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (SELECT f.Airlineid
FROM dbo.flights f
GROUP BY f.Airlineid
HAVING COUNT(f.flightid) >
(
SELECT COUNT(f.flightid) AS FLIGHTCOUNTDELTA
FROM dbo.flights f
WHERE f.Airlineid = 'DL'
)
)
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename <> 'Delta Airlines'
)
--NO NEED FOR SUBQUERY
SELECT f.cityfrom
,COUNT(f.flightid) AS FLIGHTSPERCITYFROM
FROM dbo.flights f
GROUP BY f.cityfrom
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.cityto = 'NEW YORK'
1. Write a query to display American Airlines flight’s details.
2. Write a query to find which airline is starting from HYDERABAD.
3. Write a query to display Airline name in which contains more no of flights.
4. Write a query to display no of flights airlines wise.
5. Write a query to find which airline contains more than 5 flights.
6. Write a query to display British airways and Delta airlines flights details.
7. Write a query to display airlines details in which airline contains more than maximum no of flights in Delta Airlines.
8. Write a query to display flight details except Delta airlines.
9. Write a query to display total no of flights based on city from.
10. Write a query to display flights details reaching to New York City.
MY SOLUTIONS:
----------------------------------------------
----------------------------------------------
--SUBQUERY EXERCISE
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid = (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename = 'American Airlines')
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (SELECT f.Airlineid
FROM dbo.flights f
WHERE f.cityfrom LIKE 'HYD%')
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid = (SELECT X.TopAirlineid
FROM
(
SELECT TOP 1 f.Airlineid AS TopAirlineid,COUNT(f.flightid) AS FLIGHTCOUNT
FROM dbo.flights f
GROUP BY f.Airlineid
ORDER BY FLIGHTCOUNT DESC
) X
)
--NO NEED FOR SUBQUERY
/*SELECT f.Airlineid
,COUNT(f.flightid) AS FLIGHTSPERAIRLINE
FROM dbo.flights f
GROUP BY f.Airlineid
*/
SELECT f.Airlineid
,COUNT(f.flightid) AS FLIGHTSPERAIRLINE
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
GROUP BY a.airlineid )
GROUP BY f.Airlineid
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (
SELECT f.Airlineid AS TopAirlineid
FROM dbo.flights f
GROUP BY f.Airlineid
HAVING COUNT(f.flightid) > 5
)
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename IN ('British Airways','Delta Airlines')
)
SELECT a.airlineid
,a.airlinename
,a.url
FROM dbo.Airlines a
WHERE a.airlineid IN (SELECT f.Airlineid
FROM dbo.flights f
GROUP BY f.Airlineid
HAVING COUNT(f.flightid) >
(
SELECT COUNT(f.flightid) AS FLIGHTCOUNTDELTA
FROM dbo.flights f
WHERE f.Airlineid = 'DL'
)
)
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.Airlineid IN (SELECT a.airlineid
FROM dbo.Airlines a
WHERE a.airlinename <> 'Delta Airlines'
)
--NO NEED FOR SUBQUERY
SELECT f.cityfrom
,COUNT(f.flightid) AS FLIGHTSPERCITYFROM
FROM dbo.flights f
GROUP BY f.cityfrom
SELECT f.Airlineid
,f.flightid
,f.cityfrom
,f.cityto
FROM dbo.flights f
WHERE f.cityto = 'NEW YORK'
Comments
Post a Comment