Created
October 13, 2022 03:07
-
-
Save Camilotk/1ce70e4c847a3a239d0388bb90419844 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Questão 1 | |
SELECT * | |
FROM (SELECT nome_cantor, count(*) as num_gravacoes | |
FROM gravacao | |
INNER JOIN cantor c on gravacao.cod_cantor = c.cod_cantor | |
GROUP BY nome_cantor) q1 | |
WHERE num_gravacoes = (SELECT min(gravacoes) FROM (SELECT nome_cantor, count(*) as gravacoes | |
FROM gravacao | |
INNER JOIN cantor c on gravacao.cod_cantor = c.cod_cantor | |
GROUP BY nome_cantor) q2); | |
# Questão 2 | |
SELECT * | |
FROM (SELECT nome_cantor, count(nome_gravadora) as num_gravadoras | |
FROM (SELECT distinct nome_gravadora, nome_cantor | |
FROM gravacao | |
INNER JOIN gravadora g on gravacao.cod_gravadora = g.cod_gravadora | |
INNER JOIN cantor c on gravacao.cod_cantor = c.cod_cantor | |
GROUP BY nome_cantor, nome_gravadora) q3 | |
GROUP BY nome_cantor, nome_gravadora) q4 | |
GROUP BY nome_cantor, num_gravadoras | |
HAVING count(*) > 1; | |
# Questão 3 | |
SELECT nome_cantor, duracao_media | |
FROM (SELECT nome_cantor, AVG(duracao) as duracao_media | |
FROM (SELECT nome_cantor, duracao | |
FROM gravacao | |
LEFT JOIN cantor c on gravacao.cod_cantor = c.cod_cantor | |
LEFT JOIN musica m on gravacao.cod_musica = m.cod_musica) q1 | |
GROUP BY nome_cantor) q1 | |
WHERE duracao_media = (SELECT MAX(duracao_media) | |
FROM (SELECT AVG(duracao) as duracao_media | |
FROM (SELECT nome_cantor, duracao | |
FROM gravacao | |
LEFT JOIN cantor c on gravacao.cod_cantor = c.cod_cantor | |
LEFT JOIN musica m on gravacao.cod_musica = m.cod_musica) q2 | |
GROUP BY nome_cantor) q3); | |
# Questão 4 | |
SELECT distinct nome_cantor | |
FROM cantor | |
WHERE nome_cantor NOT IN (SELECT distinct nome_cantor | |
FROM gravacao | |
INNER JOIN cantor c2 on gravacao.cod_cantor = c2.cod_cantor | |
LEFT JOIN gravadora g2 on gravacao.cod_gravadora = g2.cod_gravadora | |
WHERE nome_gravadora LIKE 'Sony'); | |
# Questão 5 | |
SELECT nome_cantor, titulo, data_gravacao | |
FROM gravacao | |
RIGHT JOIN cantor c on c.cod_cantor = gravacao.cod_cantor | |
RIGHT JOIN musica m on gravacao.cod_musica = m.cod_musica | |
WHERE YEAR(data_gravacao) = 2004; | |
# Questão 6 | |
SELECT nome_cantor, MAX(data_gravacao) FROM (select nome_cantor, data_gravacao | |
from gravacao | |
inner join cantor c on gravacao.cod_cantor = c.cod_cantor | |
group by nome_cantor, cod_gravacao, c.cod_cantor | |
ORDER BY nome_cantor) q1 | |
GROUP BY nome_cantor | |
ORDER BY MAX(data_gravacao) DESC; | |
# Questão 7 | |
SELECT nome_pessoa, numero_residencial, numero_comercial, celular | |
FROM pessoa | |
RIGHT JOIN (SELECT numero as numero_residencial, cod_pessoa FROM fone WHERE tipo = 'R') as n1 ON pessoa.cod_pessoa = n1.cod_pessoa | |
RIGHT JOIN (SELECT numero as numero_comercial, cod_pessoa FROM fone WHERE tipo = 'C') as n2 ON pessoa.cod_pessoa = n2.cod_pessoa | |
RIGHT JOIN (SELECT numero as celular, cod_pessoa FROM fone WHERE tipo = 'L') as n3 ON pessoa.cod_pessoa = n3.cod_pessoa; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment