Quest: Wyszukiwanie i filtrowanie w MySQL

CREATE TABLE wlasciciele (
    id INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50),
    nazwisko VARCHAR(50),
    miasto VARCHAR(50)
);

CREATE TABLE pojazdy (
    id INT AUTO_INCREMENT PRIMARY KEY,
    marka VARCHAR(50),
    model VARCHAR(50),
    rok INT,
    przebieg INT,
    wlasciciel_id INT,
    FOREIGN KEY (wlasciciel_id) REFERENCES wlasciciele(id)
);

#1
INSERT INTO wlasciciele (imie, nazwisko, miasto) VALUES
('Jan', 'Kowalski', 'Warszawa'),
('Anna', 'Nowak', 'Kraków'),
('Piotr', 'Zieliński', 'Gdańsk');

#2
INSERT INTO pojazdy (marka, model, rok, przebieg, wlasciciel_id) VALUES
('Toyota', 'Corolla', 2018, 90000, 1),
('BMW', 'X5', 2020, 60000, 1),
('Audi', 'A4', 2016, 150000, 2),
('Ford', 'Focus', 2019, 80000, 3),
('Toyota', 'Yaris', 2021, 30000, 2);

#3
SELECT w.imie, w.nazwisko, p.marka, p.model
FROM wlasciciele w
JOIN pojazdy p ON w.id = p.wlasciciel_id;

#4
SELECT w.imie, w.nazwisko, COUNT(p.id) AS liczba_pojazdow
FROM wlasciciele w
LEFT JOIN pojazdy p ON w.id = p.wlasciciel_id
GROUP BY w.id;

#5
SELECT w.imie, w.nazwisko, COUNT(p.id) AS liczba
FROM wlasciciele w
JOIN pojazdy p ON w.id = p.wlasciciel_id
GROUP BY w.id
HAVING COUNT(p.id) > 1;

#6
SELECT *
FROM pojazdy
ORDER BY rok ASC
LIMIT 1;

#7
SELECT w.imie, w.nazwisko, p.marka, p.model
FROM wlasciciele w
JOIN pojazdy p ON w.id = p.wlasciciel_id
WHERE w.miasto = 'Warszawa';

#8
SELECT w.imie, w.nazwisko, COUNT(p.id) AS liczba
FROM wlasciciele w
JOIN pojazdy p ON w.id = p.wlasciciel_id
GROUP BY w.id
ORDER BY liczba DESC
LIMIT 1;

#9
SELECT marka, model, przebieg
FROM pojazdy
WHERE przebieg > (
    SELECT AVG(przebieg) FROM pojazdy
);

#10
SELECT w.imie, w.nazwisko, COUNT(p.id) AS liczba_pojazdow
FROM wlasciciele w
JOIN pojazdy p ON w.id = p.wlasciciel_id
GROUP BY w.id
HAVING COUNT(p.id) > (
    SELECT AVG(liczba)
    FROM (
        SELECT COUNT(*) AS liczba
        FROM pojazdy
        GROUP BY wlasciciel_id
    ) AS podzapytanie
);

Co wyświetlą kwerendy 1-10?

Tagi: Brak tagów

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.