Preguntas de entrevista de SQL en Solverines Technology
Recientemente terminé una entrevista técnica en Solverines Technology Solutions. La ronda de SQL se centró en la recuperación de registros y la numeración de filas. También me enfrenté a un problema de lógica sobre el cambio de estado de bombillas.
Aquí están los patrones de SQL que deberías conocer.
Supongamos una tabla Employee con emp_id y emp_name.
Obtener el último registro: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1;
Obtener la 3ª fila: SELECT * FROM Employee ORDER BY emp_id LIMIT 1 OFFSET 2; Fórmula: LIMIT 1 OFFSET (N - 1).
Obtener la 3ª fila desde el final: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1 OFFSET 2;
Usa ROW_NUMBER() para patrones de filas específicos.
Obtener la 2ª fila impar: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 2 - 1); Fórmula para la N-ésima fila impar: rn = (2 * N - 1).
Obtener la 3ª fila par: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 3); Fórmula para la N-ésima fila par: rn = (2 * N).
Problema de lógica: Cambio de estado de bombillas (Bulb Toggling)
El problema te pide cambiar el estado de N bombillas a lo largo de K operaciones. Cada operación te proporciona un índice de inicio i y un índice final j. Un 0 se convierte en 1. Un 1 se convierte en 0.
Ejemplo: N = 5, K = 2. Operación 1: índice 1 al 3. Operación 2: índice 2 al 4.
Inicial: 0 0 0 0 0 Después de la Op 1: 0 1 1 1 0 Después de la Op 2: 0 1 0 0 1 Resultado final: 0 1 0 0 1.
Conclusiones de la entrevista:
La entrevista evaluó estos temas de SQL:
- Encontrar el último registro.
- Encontrar la N-ésima fila desde el principio o el final.
- Uso de ROW_NUMBER() para filas pares o impares.
- Manipulación de arreglos para problemas de lógica.
Practica estos patrones si eres un desarrollador principiante o junior.