Pense com dados
SQL é português estruturado.
Se você consegue formular a pergunta em voz alta, você consegue escrever a query. Artigos práticos de SQL para quem trabalha com dados.
Comece pelo manifesto
Últimos artigos
Antes de escrever a query: como estruturar o problema
Travar no SQL quase nunca é falta de sintaxe. É começar a escrever antes de saber qual é a linha do resultado.
Como ler um plano de execução sem ser DBA
O EXPLAIN parece uma parede de texto técnico. Mas para achar o gargalo você só precisa de três informações dentro dele.
Por que sua query ignora o índice (e a função na coluna é a culpada)
O índice está criado, a coluna está no WHERE, e mesmo assim a query varre a tabela inteira. Quase sempre é uma função aplicada do lado errado.
UNION, UNION ALL e FULL JOIN: empilhar linha não é acoplar coluna
Parecem alternativas para o mesmo problema, mas resolvem coisas opostas. E o UNION sem o ALL cobra um preço que quase ninguém percebe.
COALESCE: como tratar o NULL sem fingir que ele é zero
NULL não é zero, não é vazio e não é falso. O COALESCE resolve — desde que você saiba em qual momento da query aplicá-lo.
EXISTS, IN ou COUNT: qual usar para saber se um registro existe
As três respondem 'esse cliente comprou?'. Só que uma delas conta tudo antes de responder — e é a que a maioria escreve por hábito.
Window functions: como agregar sem perder as linhas
GROUP BY resume e joga as linhas fora. O OVER() calcula o mesmo total e devolve cada linha inteira, com o resultado do lado.