Skip to content

[lab-sql-self-cross-join]leonardo #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions [lab-sql-self-cross-join]leonardo.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
-- 1. Get all pairs of actors that worked together.
select *
from sakila.film_actor a1
inner join sakila.film_actor a2
on a1.film_id = a2.film_id
and a1.actor_id <> a2.actor_id
order by a1.actor_id;

-- 2. Get all pairs of customers that have rented the same film more than 3 times.
select * from sakila.customer; -- customer names / customer_id pk
select * from sakila.rental; -- customer_id fk / rental_id pk
select * from sakila.inventory; -- invetory_id fk / film_id fk

create table temp_rental as
select
concat(c.first_name, '_', c.last_name) as customer_name,
c.customer_id as customer_id,
r.rental_id as rental_id,
inv.film_id as film_id
from sakila.customer c
left join sakila.rental r on c.customer_id = r.customer_id
left join sakila.inventory inv on r.inventory_id = inv.inventory_id;

select * from temp_rental;

select
t1.customer_name,
t2.customer_name,
count(t1.film_id) as count_film
from sakila.temp_rental t1
inner join sakila.temp_rental t2
on t1.customer_id <> t2.customer_id and t1.film_id = t2.film_id
group by 1,2
having count_film > 3
order by 3 desc;



-- 3. Get all possible pairs of actors and films.
select
concat(a.first_name, ' ', a.last_name) as actor_name,
f.title as title
from sakila.actor a
cross join sakila.film f;