Kolokwium z baz danych: Wypożyczalnia rowerów (a.k.a. Złodzieje rowerów)
Autor: Krzysztof Stencel.
Data: 07 listopada 2025.
Struktura bazy danych: rowery.create,
rowery.drop.
Przykładowe dane: rowery.insert.
Przykładowe rozwiązanie:
Zadanie
Baza zawiera dane miejskiej wypożyczalni rowerów: jej klientów, jej rowery, jej stacje i wypożyczenia.
Napisz następujące zapytania SQL:
- Wypisz imię, nazwisko klienta, numer seryjny roweru i datę każdego wypożyczenia.
- Wypisz listę wypożyczeń; dla każdego z nich podaj nazwę stacji początkowej i końcowej.
- Wypisz listę wszystkich rowerów; jeśli rower jest wypożyczony, podaj imię i nazwisko klienta, który ten rower pożyczył.
- Wypisz listę klientów wraz z liczbą wypożyczeń każdego klienta.
- Wypisz listę klientów, którzy zawsze wypożyczali rowery tylko z jednej stacji.
- Dla każdego typu roweru oblicz średni koszt wypożyczenia (uwzględnij tylko wypożyczenia zakończone).
- Pokaż wypożyczenia, których koszt jest wyższy niż średni koszt wszystkich wypożyczeń.
- Znajdź klientów, którzy mają więcej wypożyczeń niż średnia liczba wypożyczeń na klienta.
- Policz średni czas trwania wypożyczenia w minutach dla każdego typu roweru.
- Wypisz wszystkie rowery, które były przynajmniej raz wypożyczone przez Annę Nowak.
- Powiemy, że wypożyczenie B jest przesiadką z wypożyczenia A, gdy zachodzą łącznie następujące warunki:
- wypożyczeń A i B dokonał ten sam klient na tej samej stacji;
- wypożyczenia A i B dotyczą dwóch różnych rowerów;
- odstęp między zwrotem roweru w A i wypożyczeniem roweru w B wynosi co najwyżej 3 minuty.
Znajdź wszystkie przesiadki, podając imię i nazwisko klienta, nazwę stacji, numer seryjny roweru oraz średnią arytmetyczną daty końcowej A i daty początkowej B.
- (***) Znajdź długość najdłuższego ciągu przesiadek.
Uwagi
- Wypisanie roweru oznacza wypisanie jego identyfikatora i numeru seryjnego.
- Wypisanie roweru oznacza wypisanie jego identyfikatora, imienia i naziwska.
- Wypisanie stacji oznacza wypisanie jej identyfikatora i nazwy.
- Wypisanie wypożyczenia oznacza wypisanie jego identyfikatora.
Kolokwia (SQL)