Série
SQL no HackerRank
Exercícios de SQL do HackerRank resolvidos e explicados com suas tabelas reais, com um diagrama de cada consulta que mostra quais linhas cada cláusula deixa passar. De SELECT e WHERE a Project Planning: janelas e CTE.
Entradas
- SELECT e WHEREAs consultas iniciais sobre a tabela CITY: selecionar colunas, filtrar com WHERE e encadear condições, além das primeiras agregações com COUNT, SUM e AVG.
- JOIN entre CITY e COUNTRYCruzar duas tabelas pela sua chave: INNER JOIN entre CITY e COUNTRY, com um diagrama interativo para ver quais linhas sobrevivem e quais caem.
- STATION: nomes e padrões (1)Primeiros exercícios sobre a tabela STATION: DISTINCT, contagens e filtrar nomes de cidades pela vogal com que começam ou terminam usando SUBSTRING, LEFT e RIGHT.
- STATION: nomes e padrões (2)Segunda rodada sobre STATION: negações com NOT IN, combinar condições sobre a primeira e a última letra de cada nome e depois somar, truncar e buscar máximos e mínimos de LAT_N.
- STATION: geometria e medianasOs três últimos exercícios de STATION, em que a consulta deixa de ser filtragem e passa a ser matemática: distância Manhattan, distância euclidiana e a mediana.
- STUDENTS e EMPLOYEEOrdenações compostas, agregações com CASE e o cálculo de salários: os exercícios sobre as tabelas STUDENTS, GRADES e EMPLOYEE.
- Triângulos e números primosOs exercícios de padrões: desenhar triângulos com laços no SQL Server e listar números primos em uma única linha, onde o SQL é usado quase como uma linguagem imperativa, e classificar triângulos com CASE WHEN.
- OCCUPATIONS: formato e pivôDar forma ao resultado: compor strings com CONCAT, LEFT e LOWER e pivotar uma tabela em quatro colunas usando ROW_NUMBER e CASE WHEN, porque o MySQL não tem PIVOT.
- Hierarquias: árvore binária e organogramaQuando uma linha depende de outra: classificar os nós de uma árvore binária unindo a tabela consigo mesma e contar cinco níveis de um organograma sem duplicar registros.
- Subconsultas e HAVINGFiltrar por algo que só se conhece depois de agrupar: máximos sobre contagens, valores que aparecem uma única vez, somar o máximo de cada grupo com uma função de janela e uma subconsulta correlacionada que compara cada linha com o seu próprio grupo.
- Project Planning: janelas e CTEAgrupar tarefas consecutivas em projetos: LAG para ver a data anterior, uma soma acumulada com SUM OVER que numera cada projeto e uma CTE que os agrupa e ordena por duração.










