Closed edrikfsteiner closed 4 days ago
Perguntas de negócio:
1 - Listar todos os clientes que alugaram veículos de uma determinada marca e que também fizeram pagamentos usando crédito, incluindo a última data de aluguel de cada cliente: RESPONDIDA COM STORED PROCEDURE
2 - Listar todos os clientes que alugaram veículos de uma determinada cor em um período específico: RESPONDIDO COM FUNCTION
Ideias para finalização da pergunta de negócio:
Quais são os modelos de veículos mais alugados em cada estado e qual é o valor total gerado por esses modelos em cada estado, depois gere um ranking dos modelos mais alugados e seus respectivos estados.
Quantos aluguéis foram feitos em 2023 para um modelo específico de carro, em Santa Catarina (SC), e pagos somente via cheque.
Quantos aluguéis foram feitos para cada categoria de veículo durante os meses de alta temporada (dezembro e janeiro) nos últimos dois anos?
Quais são os modelos de veículos mais alugados em cada estado e qual é o valor total gerado por esses modelos em cada estado, depois gere um ranking dos modelos mais alugados e seus respectivos estados.
-- Subconsulta para obter a contagem de aluguéis e valor total gerado por modelo e estado
WITH alugueis_por_modelo_estado AS (
SELECT
m.modelo,
e.uf,
COUNT(a.id_aluguel) AS total_alugueis,
SUM(a.valor) AS valor_total
FROM
aluguel a
JOIN veiculos v ON a.placa = v.placa
JOIN modelo m ON v.id_modelo = m.id_modelo
JOIN cliente c ON a.cd_cliente = c.cd_cliente
JOIN endereco e ON c.id_endereco = e.id_endereco
GROUP BY
m.modelo, e.uf
),
-- Subconsulta para obter o modelo mais alugado em cada estado
modelo_mais_alugado_por_estado AS (
SELECT
uf,
modelo,
total_alugueis,
valor_total,
RANK() OVER (PARTITION BY uf ORDER BY total_alugueis DESC, valor_total DESC) AS ranking
FROM
alugueis_por_modelo_estado
)
-- Selecionar os modelos mais alugados em cada estado
SELECT
uf,
modelo,
total_alugueis,
valor_total
FROM
modelo_mais_alugado_por_estado
WHERE
ranking = 1
ORDER BY
uf;
-- Ranking dos modelos mais alugados e seus respectivos estados
SELECT
modelo,
uf,
total_alugueis,
valor_total,
RANK() OVER (ORDER BY total_alugueis DESC, valor_total DESC) AS ranking
FROM
alugueis_por_modelo_estado
ORDER BY
ranking;
Quantos aluguéis foram feitos em 2023 para um modelo específico de carro, em Santa Catarina (SC), e pagos somente via cheque.
SELECT
m.modelo,
COUNT(a.id_aluguel) AS total_alugueis
FROM
aluguel a
JOIN veiculos v ON a.placa = v.placa
JOIN modelo m ON v.id_modelo = m.id_modelo
JOIN cliente c ON a.cd_cliente = c.cd_cliente
JOIN endereco e ON c.id_endereco = e.id_endereco
JOIN pagamento p ON a.id_pagamento = p.id_pagamento
JOIN forma_pagamento fp ON p.cd_forma_pagamento = fp.cd_forma_pagamento
WHERE
e.uf = 'SC'
AND fp.tipo_pagamento = 'Cheque'
AND YEAR(a.data_inicio) = 2023
GROUP BY
m.modelo
ORDER BY
total_alugueis DESC;
Responder 4 perguntas de negócio (a escolha do professor).