Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Contas abertas após 2023.

Na verdade nenhuma conta foi aberta após 2023.

3 respostas

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?

Com essas informações, conseguirei te ajudar de forma mais precisa. Ah, se quiser, dá uma olhadinha neste guia sobre como fazer uma boa pergunta no fórum — ele mostra exatamente o que precisamos saber pra conseguir te ajudar da melhor forma e com mais agilidade.
Fico no aguardo e à disposição

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.

solução!

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:

Resultados de consulta SQL mostrando "TotalContas" como 4 e "Media Saldo" como 2250 em uma interface de programação com tema escuro.

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado