Pomoc w zapytaniach do SQL w programie postgresql

0

Witam Państwa :)

Pracuję aktualnie nad zapytaniami do bazy danych dostępnych pod adresem: https://www.postgresqltutorial.com/postgresql-sample-database/

udało mi się wykonać 8 zapytań z 15 więc nie jest źle ^^ lecz dalej ciągle borykam się z problemami.

Poniżej treść pytań i odpowiedzi które już mam:

Zapytania:

  1. Znajdź aktora, który grał w największej liczbie filmów.

select a.first_name, a.last_name, fa.actor_id, count(*) as ilosc_filmow from film_actor fa join actor a on fa.actor_id=a.actor_id join film f on f.film_id=fa.film_id group by fa.actor_id, a.first_name, a.last_name order by ilosc_filmow desc limit 1;

  1. Znajdź aktora, który grał w największej liczbie filmów dłóższych niż godzina.

select a.first_name, a.last_name, fa.actor_id, count(*) as ilosc_filmow from film_actor fa join actor a on fa.actor_id=a.actor_id join film f on f.film_id=fa.film_id group by fa.actor_id, a.first_name, a.last_name, f.length having f.length>60 order by ilosc_filmow desc limit 1;

  1. Znajdź liczbę filmów w języku japońskim.

select count(*) from film f join language l on f.language_id=l.language_id where l.name='Japanese' limit 5;

  1. Znajdź wszystkich aktorów, którzy grali w co najmniej trzech filmach z językiem hiszpańskim.

select a.first_name, a.last_name, fa.actor_id, count() as ilosc_filmow from film_actor fa join actor a on fa.actor_id=a.actor_id join film f on f.film_id=fa.film_id join language l on l.language_id=f.language_id where l.name='English' group by fa.actor_id, a.first_name, a.last_name having count()>2;

  1. Znajdź liczbę komedii w języku francuskim.

select count(*) from category as c join film_category as fc on c.category_id=fc.category_id join film as f on f.film_id=fc.film_id join language as l on l.language_id=f.language_id where l.name='English' and c.name='Comedy';

  1. Znajdź wszystkich aktorów, którzy grali w więcej niż jednym gatunku filmmowym.

select a.first_name, a.last_name, c.name from category as c join film_category as fc on c.category_id=fc.category_id join film as f on f.film_id=fc.film_id join language as l on l.language_id=f.language_id join film_actor as fa on fa.film_id=f.film_id join actor as a on a.actor_id=fa.actor_id group by a.actor_id, c.name having count(c.name)>1;

  1. Znajdź klienta, który ma największą liczbę wypożyczeń w bazie.

select c.first_name, c.last_name, count() from rental r join customer c on c.customer_id = r.customer_id group by r.customer_id, c.first_name, c.last_name order by count() desc limit 1;

  1. Dla znalezionego w poprzednim punkcie klienta znajdź jego ulubioną kategorię filmową.

select c.first_name, c.last_name, ca.name as category, count() from rental r join customer c on c.customer_id = r.customer_id join inventory i on i.inventory_id=r.inventory_id join film f on f.film_id=i.film_id join film_category fc on fc.film_id=f.film_id join category ca on ca.category_id=fc.category_id where c.first_name='Eleanor' group by ca.name, r.customer_id, c.first_name, c.last_name order by count() desc;

  1. Wyświetl wszystkie kraje w których istnieją klienci, którzy mają na swoim koncie co najmniej 5 wypożyczeń.
  2. Wyświetl adres e-mail najaktywniejszego pracownika.
  3. Znajdź trzy wersje językowe filmów, które są najrzadziej wypożyczane. Wyświetl ich łączną liczbę wypożyczeń.
  4. Znajdź największą płatność spośród wszystkich klientów z Bydgoszczy.
  5. Czy klienci z Francji najbardziej preferują filmy w języku francuskim?
  6. Jakie jest najpopularniejsze imię wśród aktorów, klientów i obsługi? Czy jest to te same imię?
  7. Oblicz całkowitą kwotę wypożyczeń najaktywniejszego klienta z Polski.
3

A te 8 to przypadkiem nie były podyktowane na zajęciach przez prowadzącego?
Pokaż co zrobiłeś sam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1