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.

Fuente: https://dev.to/aj_arul/sql-interview-questions-asked-in-solverines-technology-solutions-technical-round-30m3