Na verdade nenhuma conta foi aberta após 2023.
Na verdade nenhuma conta foi aberta após 2023.
Olá, Wagner! Como vai?
Não foi possível compreender totalmente o seu cenário, para poder te ajudar de uma forma melhor, poderia compartilhar o seu código conosco?
Olá Daniel. A questão é simples. O exercício pede as contas abertas APÓS 2023. Na base de dados fornecida todas as contas foram abertas em 2023, logo o resultado da consulta não trará nenhuma conta. Contudo, a resposta do instrutor trás todas as contas de 2023. Os exercícios da Alura são muito mal elaborados.
Boa noite, Wagner!
Obrigado por aguardar o retorno.
O código sugerido na Opinião do Instrutor é esse:
WITH ContasAbertasRecentes AS (
SELECT id_conta, Saldo
FROM TabelaConta
WHERE DataAbertura > '2023-01-01'
),
SaldoMedio AS (
SELECT AVG(Saldo) AS MediaSaldo
FROM ContasAbertasRecentes
)
SELECT COUNT(*) AS TotalContas, (SELECT MediaSaldo FROM SaldoMedio) AS MediaSaldo
FROM ContasAbertasRecentes;
Ao executarmos, temos como resultado:
Ou seja, temos como resultado o total de contas que foram abertas após o dia 1 de janeiro de 2023.
De fato o enunciado pode levar a uma interpretação diferente, uma possibilidade seria captar apenas os anos a partir de 2024 (depois do dia 31 de dezembro de 2023). Dessa forma:
WITH ContasAbertasRecentes AS (
SELECT id_conta, Saldo
FROM TabelaConta
WHERE DataAbertura > '2023-12-31'
),
SaldoMedio AS (
SELECT AVG(Saldo) AS MediaSaldo
FROM ContasAbertasRecentes
)
SELECT COUNT(*) AS TotalContas, (SELECT MediaSaldo FROM SaldoMedio) AS MediaSaldo
FROM ContasAbertasRecentes;
Temos 0 e NULL como resultados, pois não há registros de contas a partir de 2024. Mas a consulta e aprendizado ainda continuam super válidos para outros casos.
Agradeço seu feedback! Espero ter ajudado e fico à disposição se precisar.
Abraço e bons estudos!