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?
Twój komentarz