Skip to content

[lab-sql-self-cross-join]Giacomo #15

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
30 changes: 30 additions & 0 deletions lab11.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-- 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.

create table sakila.tempo_customer
select customer_id, film_id from sakila.rental re
left join sakila.inventory inv
on re.inventory_id = inv.inventory_id
group by 1,2;

select s1.customer_id , s2.customer_id, count(s1.film_id) as count_film
from sakila.tempo_customer s1
inner join sakila.tempo_customer s2
on s1.customer_id <> s2.customer_id and s1.film_id = s2.film_id
group by s1.customer_id , s2.customer_id
having count_film >3 and s1.customer_id < s2.customer_id
order by 3 desc;


select count(customer_id) from sakila.tempo_customer;

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