Usando SQL para analisar 5 anos de um Bolão da NBA (parte 2)

Felipe Gollnick
4 min readJun 2, 2022

Se você pulou a parte 1, clique aqui para ler a primeira metade do texto.

Photo by Kenny Eliason on Unsplash

Na análise anterior, eu tinha tentado avaliar qual era a predominância dos palpites CONSERVADORES em cada etapa do campeonato. Por palpite Conservador, entenda-se: o participante achou que um determinado confronto seria vencido pelo time que realizou melhor campanha durante toda a temporada regular.

Com uma query com diversos CASE WHEN, consigo fazer contagens condicionais para separar os resultados por temporada e por etapa, e chegar na consulta abaixo, mostrando a porcentagem de palpites conservadores entre todos os participantes, agrupados por temporada e rodada:

Não houve Bolão na primeira rodada de 2018. Para as Finais de 2022, dados ainda indisponíveis. Mas já é possível perceber como a temporada atual registrou, de longe, a menor porcentagem de palpites conservadores

Essa query é mais cabeluda por causa das contas envolvendo o CASE WHEN para chegarmos nas porcentagens:

É preciso filtrar a query para que ela não retorne os registros de ‘GABA’, que é o Gabarito com o resultado real do confronto entre os times. O Gabarito consta na tabela Palpites como se fosse um participante e preciso levar isso em consideração em todas as queries em que analiso/comparo resultados.

Da mesma forma, dentro do universo de palpites Conservadores, é possível verificar qual o desempenho destes por ano e rodada, ou seja: qual foi a porcentagem dos palpites conservadores que se converteram em acertos.

Quando há o valor 100%, significa que todos os confrontos foram vencidos pelo time de melhor campanha — logo todos os palpites conservadores estavam certos. Como nas Finais há apenas um único confronto, em cada ano o resultado desta conta para a última linha será sempre 100% ou 0%.

Para esta query, preciso explicar que na tabela Palpites, tenho uma coluna chamada “Acertou”, onde 1 é verdadeiro e 0 é falso. Dessa forma, consigo calcular as porcentagens usando a média: AVG(). Uso a tabela Séries como base e faço um LEFT JOIN somente com os palpites que foram filtrados como Conservadores (pois também tenho uma outra coluna chamada “Conservador” com valores 1 e 0).

Por fim, trago um exemplo de uma query mais complexa — até um pouco difícil de explicar por escrito. Mas minha ideia era descobrir em quais confrontos houve consenso entre os participantes de que haveria uma lavada.

Ou seja, em quais séries a média dos palpites chegou mais próxima a 4x0 para um único time.

(Lembrando que neste estudo, considero apenas os resultados finais de cada série de melhor de 7 partidas, e não os resultados individuais de cada jogo).

Em Avg_A, está a média dos palpites para o Time A; em Avg_B, a média para o Time B. Posso subtrair as duas médias para chegar em um diferencial que me permite rankear os confrontos.

Assim, foi na série entre Warriors e Clippers na 1ª rodada de 2019 que os palpites mais apontaram para uma varrida de 4x0. Mas a série acabou em 4x2, tendo sido bem mais equilibrada do que os participantes do Bolão esperavam.

Por outro lado, conforme abaixo, foi na série entre Celtics e 76ers em 2018 que os palpites mais apontaram para um confronto equilibrado: as médias dos placares enviados ficaram empatadas em 3,29. Mas a série acabou em 4x1.

Para chegar nos resultados, bolei a query mais complexa dos meus estudos até agora. Note a necessidade de excluir o Gabarito de cada cálculo de média, e depois a necessidade de filtrar APENAS o Gabarito para que possamos comparar a média dos palpites com o que efetivamente aconteceu na vida real.

É isso, por enquanto! Só com isso aí tudo, já pude perceber o tamanho do poder do SQL para consultas simples e complexas também — e fiquei muito empolgado para continuar estudando e descobrindo coisas novas.

Se você chegou até aqui, gostaria de agradecer DEMAIS pela leitura e pelo interesse. Ainda tenho MUITO o que aprender sobre SQL e Análise de Dados e adoraria receber toques ou sugestões, ou meramente conversar sobre o assunto aqui.

Estou à disposição no e-mail felipe.gollnick@gmail.com ou ali no instagram.

--

--

Felipe Gollnick

SQL | BI | Data | Power BI & Qlik | Passionate about sea trade logistics, music and Bahia