Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alguém poderia me explicar melhor esse select?

Alguém poderia me explicar melhor esse select?

select *,(select count(l2.data_de_lancamento)from livros as l2 where l2.data_de_lancamento = l.data_de_lancamento)from livros as l order by l.data_de_lancamento; 
1 resposta
solução!

Olá Ian,

Esse select está retornando todas as colunas de livros e também a quantidade de livros lançados para cada data de lançamento. Parece meio confuso, então vou explicar melhor.

Cada livro da tabela possui uma data de lançamento. Para cada um dessa data, foram também lançados outros livros. Logo, a query que está dentro dos parênteses está contando a quantidade de livros lançados para cada data de lançamento.

Segue o comentário de cada linha da query

SELECT
    *, /*RETORNA TODAS AS COLUNAS DA TABELA LIVROS*/
    (
        SELECT   COUNT(l2.data_de_lancamento) /*FAZ A CONTAGEM DOS LIVROS LANÇADOS*/
        FROM livros AS l2
        WHERE  l2.data_de_lancamento = data_de_lancamento /*ESSE WHERE É O QUE VAI LINKAR AS SOMAS DOS LANÇAMENTOS PARA CADA DATA CORRESPONDENTE*/
) /*RETORNA A SOMA DE LIVROS LANÇADOS PARA CADA DATA DE LANÇAMENTO VERIFICADA NA TABELA LIVROS*/
FROM
    livros AS l
ORDER BY
    l.data_de_lancamento; 

Espero ter ajudado. Abs