Exs de Banco de Dados
-- Usa-se GROUP BY para contas com MAX(), SUM(), MIN(), COUNT(), AVG()
SELECT P.NUM_PED AS 'PEDIDO', TP.QTD_CD AS 'QTD DE CD´S' FROM PEDIDO P JOIN TITULO_PEDIDO TP ON TP.NUM_PED = P.NUM_PED; SELECT P.NUM_PED AS 'PEDIDO', SUM(TP.QTD_CD) AS 'QTD DE CD´S' FROM PEDIDO P JOIN TITULO_PEDIDO TP ON TP.NUM_PED = P.NUM_PED GROUP BY P.NUM_PED;
SELECT P.NUM_PED AS 'PEDIDO', SUM(TP.QTD_CD) AS 'QTD DE CD´S', COUNT(T.NOME_CD) AS 'QTD DE TITULOS' FROM PEDIDO P JOIN TITULO_PEDIDO TP ON TP.NUM_PED = P.NUM_PED JOIN TITULO T ON T.COD_TIT = TP.COD_TIT GROUP BY P.NUM_PED;
-- Exercícios com GROUP BY
-- 17) Quantos títulos possui cada artista no catálogo ?
select count(titulo_artista.cod_tit) as 'Titulos', artista.nome_art from titulo_artista join artista on titulo_artista.cod_art=artista.cod_art group by artista.nome_art;
-- 18) Quantos artistas possui cada Gravadora em nosso catálogo ?
select count(artista.cod_art) as 'Artistas', gravadora.nome_grav from artista join titulo_artista on artista.cod_art=titulo_artista.cod_art join titulo on titulo_artista.cod_tit=titulo.cod_tit join gravadora on titulo.cod_grav=gravadora.cod_grav group by gravadora.nome_grav;
-- 19) Quantos artistas possui cada Gravadora em nosso catálogo e qual o total de artistas ?
select count(artista.cod_art) as 'Artistas', gravadora.nome_grav from artista join titulo_artista on artista.cod_art=titulo_artista.cod_art join titulo on titulo_artista.cod_tit=titulo.cod_tit join gravadora on titulo.cod_grav=gravadora.cod_grav group by nome_grav;
-- 20) Liste todos os pedidos feitos no ano de 2002 e qual o total faturado no ano ?
select num_ped as 'Pedido', val_ped 'Faturamento' from Pedido where data_ped like '2002%' group by num_ped;
-- 21) Liste todos os funcionarios e quantos dependentes cada um deles possui.
select funcionario.nome_func as 'Funcionario',