Solverines Technology 的 SQL 面试题

我最近参加了 Solverines Technology Solutions 的技术面试。SQL 环节侧重于记录检索和行编号。我还遇到了一道关于切换灯泡状态的逻辑题。

以下是你需要掌握的 SQL 模式。

假设有一个包含 emp_idemp_nameEmployee 表。

获取最后一条记录: 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)

逻辑题:灯泡切换

题目要求你在 K 次操作中切换 N 个灯泡的状态。 每次操作会给你一个起始索引 $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() 获取偶数行或奇数行。
  • 用于逻辑题的数组操作。

如果你是应届生或初级开发人员,请练习这些模式。

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