Temat: problem z zapytaniami
Witam mam problem z zapytaniem, a dokladnie nie wiem jak je sformulowac. Zapytanie ma mi wypisac najczescie wypozyczane auto opisane jako id_auto w tabeli wypozyczenia.
PostgreSQL to najbardziej zaawansowany system relacyjnych baz danych Open Source.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam mam problem z zapytaniem, a dokladnie nie wiem jak je sformulowac. Zapytanie ma mi wypisac najczescie wypozyczane auto opisane jako id_auto w tabeli wypozyczenia.
Trochę mało napisałeś o tym zapytaniu.
Interesuje cie przypadki wypożyczeń czy długość wypożyczenia?
Jaka jest struktura tabeli i logika biznesowa bazy danych?
Najpewniej będziesz musiał zagregować wartości Countem lub Sumą. Ale to jest tylko domniemanie.
chodzi mi o przypadki wypozyczen.
id_wypozyczenia | id_klient | id_auto | godzina_wypozyczenia | godzina_zwrotu | cena_wypozyczenia | czy_oddal | zastrzezenia
-----------------+-----------+---------+----------------------+----------------+-------------------+-----------+--------------
1 | 1 | 1 | 10:00:00 | 12:00:00 | 100 | t | f
2 | 2 | 2 | 12:00:00 | 14:00:00 | 90 | t | f
3 | 3 | 3 | 13:30:00 | 15:30:00 | 80 | t | f
4 | 4 | 4 | 10:00:00 | 12:00:00 | 120 | t | f
5 | 1 | 4 | 12:00:00 | 00:00:00 | 120 | f | t
Tak wyglada tabela. Chodzi mi o wyswietlenie najczescie wypozyczanego auta. Czyli o id_auto nr 4 bo ono jest wypozyczane dwa razy reszta tylko raz. Tylko nie mam pojecia jak sformulowac takie zapytanie. Ja dopiero zaczynam zabawe z SQLem wiec mam docs spore problemy i prisilbym bardzo o pomoc. Podobnie jest z id_klient tez chcem wyswietlic ktory klient najczesciej wypozyczal jakies auto.
Moze jakos tak ale chwilowo nie ma postgresa aby sprawdzic czy dziala
select id_auto from (select id_auto, count(*) as ilosc from wypozyczenia group by id_auto) f1 where
ilosc=(select max(ilosc) from (select id_auto, count(*) as ilosc from wypozyczenia group by id_auto) f2)
Ta wersja powinna być tańsza ale nie poradzi sobie przy remisie na pierwszym miejscu.
SELECT
id_auto,
count(*) AS ilosc
FROM wypozyczenia
GROUP BY by id_auto
ORDER BY ilosc DESC
LIMIT 1
Tylko, że jak będzie więcej samochodów z taka sama ilością wypożyczeń to wypisze tylko jednego.
Posty [ 6 ]
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.008 sekund, wykonano 10 zapytań ]