数分面试题-SQL常见面试题型1
发布人:shili8
发布时间:2025-02-26 01:11
阅读次数:0
**SQL 常见面试题型1**
作为一名数据分析师或开发者,掌握 SQL 是非常重要的技能之一。以下是一些常见的 SQL 面试题,涵盖了各种类型的问题。
###问题1:基本查询假设有一个 `employees` 表格,包含员工信息,如下所示:
| id | name | age |
| --- | --- | --- |
|1 | John |25 |
|2 | Alice |30 |
|3 | Bob |35 |
**问题:** 使用 SQL 查询出所有员工的姓名和年龄。
**答案:**
sqlSELECT name, age FROM employees;
###问题2:过滤数据假设有一个 `orders` 表格,包含订单信息,如下所示:
| id | customer_id | order_date |
| --- | --- | --- |
|1 |1 |2020-01-01 |
|2 |2 |2020-02-01 |
|3 |1 |2020-03-01 |
**问题:** 使用 SQL 查询出在2020 年2 月份下单的订单。
**答案:**
sqlSELECT * FROM orders WHERE order_date = '2020-02-01';
###问题3:排序和分组假设有一个 `sales` 表格,包含销售数据,如下所示:
| id | product_id | sales_amount |
| --- | --- | --- |
|1 |1 |100 |
|2 |2 |200 |
|3 |1 |300 |
**问题:** 使用 SQL 查询出每个产品的销售额,按降序排序。
**答案:**
sqlSELECT product_id, sales_amount FROM sales GROUP BY product_id ORDER BY sales_amount DESC;
###问题4:连接表假设有两个表格 `employees` 和 `departments`,包含员工信息和部门信息,如下所示:
**employees**
| id | name | age |
| --- | --- | --- |
|1 | John |25 |
|2 | Alice |30 |
**departments**
| id | department_name |
| --- | --- |
|1 | Sales |
|2 | Marketing |
**问题:** 使用 SQL 查询出每个员工的部门名称。
**答案:**
sqlSELECT e.name, d.department_name FROM employees e JOIN departments d ON e.id = d.id;
###问题5:子查询假设有一个 `orders` 表格,包含订单信息,如下所示:
| id | customer_id | order_date |
| --- | --- | --- |
|1 |1 |2020-01-01 |
|2 |2 |2020-02-01 |
|3 |1 |2020-03-01 |
**问题:** 使用 SQL 查询出所有在2020 年2 月份下单的订单,以及这些订单对应的客户名称。
**答案:**
sqlSELECT * FROM orders WHERE id IN (SELECT id FROM orders WHERE order_date = '2020-02-01');
###问题6:窗口函数假设有一个 `sales` 表格,包含销售数据,如下所示:
| id | product_id | sales_amount |
| --- | --- | --- |
|1 |1 |100 |
|2 |2 |200 |
|3 |1 |300 |
**问题:** 使用 SQL 查询出每个产品的销售额,按降序排序,并显示每个产品的排名。
**答案:**
sqlSELECT product_id, sales_amount, ROW_NUMBER() OVER (PARTITION BY product_id ORDER BY sales_amount DESC) AS rank FROM sales;
以上就是一些常见的 SQL 面试题。这些问题涵盖了基本查询、过滤数据、排序和分组、连接表、子查询和窗口函数等方面。通过回答这些问题,你可以展示你的 SQL 技能,并为面试官留下深刻印象。