# Exercício 7 e 8 - Backend # ###### Array, Like, Split Part, Date Part, 1. Quais gêneros distintos existem? A resposta deve ordernar pela quantidade decrescente e mostrar a quantidade de itens por gênero. ```sql= select distinct n.listed_in, count(n.show_id) from netflix n group by n.listed_in order by count(n.show_id) desc ``` 2. Para os filmes, qual é a media de duração listando-os por gênero e ordenado-os pela duração de maneira decrescente? Dica: Utilize a função SPLIT_PART. ```sql= select distinct n.listed_in, AVG(cast(split_part(n.duration, ' ', 1) as float)) from netflix n group by n.listed_in order by AVG(cast(split_part(n.duration, ' ',1 ) as float)) desc ``` 3. Quais os gêneros listados que possuem maior quantidade de séries agrupados por ano de lançamento. Orderne-os pela quantidade de maneira decrescente. ```sql= select n.release_year, n.listed_in, count(n.show_id) from netflix n where n."type" = 'TV Show' group by n.release_year, n.listed_in order by count(n.show_id) desc ``` 4. Quantas produções não foram lançadas no mesmo ano de produção? Dica: Utilize a função date_part. ```sql= select count(n.show_id) from netflix n where n.release_year <> date_part('year', n.date_added) ``` 5. Quais são os cinco países mais produtores de séries sem considerar os Estados Unidos? ```sql= select n.country, n."type", count(n.show_id) from netflix n where n.country not like '%United States%' and n."type" = 'TV Show' group by n.country, n."type" order by count(n.show_id) desc limit 5 ``` 6. Por listagem de gênero, quantas produções existem que são classificadas para jovens de 17 anos ou apenas adultos? Ordene-as decrescentemente. ```sql= select n.listed_in , n.rating, count(n.show_id) from netflix n where n.rating = 'R' or n.rating = 'NC-17' group by n.listed_in , n.rating order by count(n.show_id) desc ``` 7. Obtenha todas as produções que tiveram Antonio Banderas como principal ator (primeiro ator da listagem). Qual é a quantidade de produções? Dica: Utiliza a cláusula LIKE ```sql= select n.title, n.casting from netflix n where split_part(n.casting, ', ', 1) like '%Antonio Banderas%' group by n.title, n.casting; select count(n.show_id ) from netflix n where split_part(n.casting, ', ', 1) like '%Antonio Banderas%'; ``` 8. Busque pela listagem de todos os atores. Dica: Existe a função string_to_array que transforma uma string (um texto) em uma lista (array) e a função que transforma uma lista (array) em uma coluna. ```sql= select distinct unnest(string_to_array(n.casting, ', ')) from netflix n order by unnest(string_to_array(n.casting, ', ')) asc ``` 9. Busque por todos os filmes que sejam da franquia Transformers, Star Wars, Harry Potter ou Lord of the Rings. Dica: utilize a cláusula LIKE ```sql= select n.show_id, n."type", n.title from netflix n where n.title like '%Transformers%' or n.title like '%Harry Potter%' or n.title like '%Star Wars%' or n.title like '%Lord of the Rings%' group by n.show_id, n."type", n.title ``` 10. Quantas séries ou filmes envolvem alguma descrição com a palavra distópica (dystopian) ou zumbi (zombie)? A resposta deve conter a quantidade de filmes e series em grupos separados; ```sql= select distinct n."type", count(n.show_id) from netflix n where n.description like '%dystopian%' or n.description like '%zombie%' group by n."type" ``` 11. Busque os anos de lançamento das 5 series com lançamento mais antigo e que não tenham sido produzidas nos Estados Unidos (primeira posição no campo de países) nem que o Reino Unido (United Kingdom) tenha participação. ```sql= select n.release_year from netflix n where n.country not like 'United States%' and n.country not like '%United Kingdom%' and n."type" = 'TV Show' order by n.release_year asc limit 5 ``` 12. Quais as durações e a quantidade de filmes que se enquadram nos seguintes critérios: - Foi adicionado na plataforma entre 2015 e 2017; - É listado de alguma forma como documentário (Documentaries); - Possui duração entre 90 e 100 minutos; - A resposta deve conter a duração e a quantidade de produção para cada duração; - Ordernar pela quantidade decrescentemente; ```sql= select n.duration, count(n.show_id) from netflix n where date_part('year', n.date_added) between 2015 and 2017 and cast(split_part(n.duration, ' ', 1) as integer) between 90 and 100 and n.listed_in ilike '%DoCuMeNtArIeS%' group by n.duration order by count(n.show_id) desc ``` 13. Entre os países produtores de Ficção Científica e Fantasia (Sci-Fi & Fantasy) busque aqueles que: - não sejam os 10 maiores produtores - não sejam de nenhuma forma vinculados aos Estados Unidos. (nenhuma produção de ficção científica e fantasia junto a eles) - Sua resposta deve conter apenas 5 países com a quantidade de produção; ```sql= select unnest (string_to_array(n.country, ', ')), count(n.show_id) from netflix n where n.listed_in ilike '%Sci-Fi & Fantasy%' and n.country not ilike '%United states%' group by n.country order by count(n.show_id) desc limit 5 offset 10 ``` 14. "Brazil" só produz conteúdo de comédia ou violento/de ação? Qual a relação da quantidade produzida geral pelo Brasil e com conteúdos que não são desses nichos? (A resposta pode estar em consultas separadas) ```sql= select count(n.show_id) from netflix n where n.country ilike '%Brazil%' and (n.listed_in not ilike '%comed%' and n.listed_in not ilike '%action%'); select count(n.show_id) from netflix n where n.country ilike '%Brazil%' ``` 15. Faça uma consulta que respeite as seguintes condições: - Cinco maiores produtores de conteúdo de música (Music & Musicals) - Não tenha participação de Estados Unidos, nem Reino Unido, nem Índia; - Possua as informações de listagem de gênero, os países que participam dessas produções (um ou mais) e a quantidade de produções; - Cada item pode ter mais de um país; ```sql= select n.listed_in, n.country , count(n.show_id) from netflix n where n.listed_in ilike '%Music & Musicals%' and n.country not ilike '%united states%' and n.country not ilike '%india%' and n.country not ilike '%kingdom' group by n.listed_in, n.country order by count(n.show_id) desc limit 5 ```