SQL面试题更新 2026-08-05

给定用户、访问记录等相关表结构,请编写一条 SQL 查询,找出在 2024 年 7 月 1 日当天访问过路径为 '/home' 的页面,并且年龄大于 25 岁的所有用户,返回他们的用户名,注意去除重复记录。

编码实现技术原理SQL

考察说明

考查 SQL 基本查询能力,包括多表连接、条件过滤、去重等操作。

回答思路

  1. 【回答框架 1】明确涉及的实体:用户表(包含用户ID和用户名、年龄)和访问记录表(包含用户ID、访问日期、访问路径)。若两表字段不明确,需要先假设或说明表结构。
  2. 【回答框架 2】使用 JOIN 连接用户表和访问记录表,连接条件为两表的用户ID相等。也可以使用子查询或 IN 子句,但连接方式更直接。
  3. 【回答框架 3】过滤条件包括:访问日期等于 '2024-07-01'(注意日期格式),访问路径等于 '/home',年龄大于 25。
  4. 【回答框架 4】使用 DISTINCT 对用户名去重,因为同一用户可能在当天访问多次该页面。
  5. 【回答框架 5】最终 SELECT 输出用户名,确保不会出现重复。
  6. 【关键点 1】需要连接用户表和访问记录表,连接键是用户ID。
  7. 【关键点 2】过滤条件:日期、路径、年龄,缺一不可。
  8. 【关键点 3】使用 DISTINCT 或 GROUP BY 去重。
  9. 【易错点 1】日期字段类型不匹配,应使用正确的日期格式或函数。
  10. 【易错点 2】若未使用去重,可能返回重复用户名。
  11. 【易错点 3】连接时注意字段名对应,避免笛卡尔积。