Вопросы по SQL на собеседовании в Solverines Technology

Недавно я прошел техническое собеседование в Solverines Technology Solutions. Раунд по SQL был посвящен извлечению записей и нумерации строк. Также мне попалась логическая задача о переключении состояний лампочек.

Вот паттерны SQL, которые вам стоит знать.

Предположим, есть таблица Employee с полями emp_id и emp_name.

Получить последнюю запись: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1;

Получить 3-ю строку: SELECT * FROM Employee ORDER BY emp_id LIMIT 1 OFFSET 2; Формула: LIMIT 1 OFFSET (N - 1).

Получить 3-ю строку с конца: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1 OFFSET 2;

Используйте ROW_NUMBER() для специфических паттернов строк.

Получить 2-ю нечетную строку: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 2 - 1); Формула для N-й нечетной строки: rn = (2 * N - 1).

Получить 3-ю четную строку: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 3); Формула для N-й четной строки: rn = (2 * N).

Логическая задача: Переключение лампочек

В задаче требуется переключить состояние N лампочек за K операций. Каждая операция задает начальный индекс i и конечный индекс j. 0 становится 1. 1 становится 0.

Пример: N = 5, K = 2. Операция 1: от индекса 1 до 3. Операция 2: от индекса 2 до 4.

Исходное состояние: 0 0 0 0 0 После оп. 1: 0 1 1 1 0 После оп. 2: 0 1 0 0 1 Конечный результат: 0 1 0 0 1.

Итоги собеседования:

На собеседовании проверялись следующие темы SQL:

  • Поиск последней записи.
  • Поиск N-й строки с начала или с конца.
  • Использование ROW_NUMBER() для четных или нечетных строк.
  • Манипуляции с массивами в логических задачах.

Практикуйте эти паттерны, если вы начинающий специалист или junior-разработчик.

Источник: https://dev.to/aj_arul/sql-interview-questions-asked-in-solverines-technology-solutions-technical-round-30m3