You may make a copy of a activity-sql-practice.sql and complete this activity.
You may work alone or with at most 2 other students (max size=3) in this course.
Use an SQL script cardata.sql to create and populate three tables of the US vehicle toy database. (data from https://www.kaggle.com/datasets/doaaalsenani/usa-cers-dataset?resource=download)
Write SQL queries to solve the following problems.
SELECT DISTINCT brand FROM Car_specs T1, Car_priceloc T2 WHERE T1.vin = T2.vin AND T2.state LIKE "Virginia" AND T1.year > 2015; -- or SELECT DISTINCT brand FROM Car_specs T1, Car_priceloc T2 WHERE T1.vin = T2.vin AND T2.state = "Virginia" AND T1.year > 2015;
SELECT T1.year, count(*) AS number_cars FROM Car_specs T1 NATURAL JOIN Car_priceloc T2 GROUP BY T1.year HAVING number_cars >= 100;
SELECT T1.state, COUNT(DISTINCT T2.brand) AS number_brands FROM Car_priceloc T1 NATURAL JOIN Car_specs T2 GROUP BY T1.state ORDER BY T1.state;
SELECT color, COUNT(color) FROM Car_specs WHERE brand LIKE "jeep" AND model like "mpv" GROUP BY color; -- or SELECT color, COUNT(color) FROM Car_specs WHERE brand = "jeep" AND model = "mpv" GROUP BY color;
WITH T1 AS (SELECT   state, MAX(price) AS max_price
            FROM     Car_priceloc
            GROUP BY state)
SELECT   T2.vin, T2.price, T2.state 
FROM     Car_priceloc T2, T1
WHERE    T2.state = T1.state AND T2.price = T1.max_price
ORDER BY T1.state;   
          SELECT  T1.vin, brand, model, price, mileage 
FROM    Car_priceloc T1, (SELECT * 
                          FROM   Car_specs s NATURAL JOIN Car_condition c 
                          WHERE  c.mileage < 10000) T2 
WHERE   T2.vin like T1.vin AND T1.price >= 30000 AND T1.price <= 50000;
-- or
WITH T2 AS
       (SELECT * 
        FROM   Car_specs s NATURAL JOIN Car_condition c 
        WHERE  c.mileage < 10000) 
SELECT  T1.vin, brand, model, price, mileage 
FROM    Car_priceloc T1, T2
WHERE   T2.vin = T1.vin AND T1.price >= 30000 AND T1.price <= 50000;
-- or
SELECT  vin, brand, model, price, mileage 
FROM    Car_specs NATURAL JOIN Car_condition NATURAL JOIN Car_priceloc
WHERE   mileage < 10000 AND
        price BETWEEN 30000 AND 50000;
       
-- or
SELECT  vin, brand, model, price, mileage 
FROM    Car_specs NATURAL JOIN Car_condition NATURAL JOIN Car_priceloc
WHERE   mileage < 10000 AND
        price >= 30000 AND price <= 50000;  
          
 CC-BY-NC-SA 4.0 license.