Питання на 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