Lang:简体中文

sql数据分析面试题

日期:2025-09-08 / 来源:面试宝典

掌握这些题,面试不再发愁

在求职数据分析相关岗位时,sql是面试官考察的重点技能之一。下面为大家详细介绍一些常见的sql数据分析面试题。

基础查询语句

基础查询语句是sql的基石,面试中经常会考察对select、from、where等关键字的使用。例如,有一个员工信息表,包含员工id、姓名、部门、入职日期和薪水等字段。面试官可能会要求查询出薪水大于5000的员工信息。对应的sql语句为:select * from employee where salary > 5000; 这道题主要考察对where条件筛选的掌握。

排序与分组

排序和分组操作在数据分析中非常重要。排序通常使用order by关键字,分组使用group by关键字。比如,要查询每个部门的平均薪水,并按照平均薪水从高到低排序。sql语句如下:select department, avg(salary) as avg_salary from employee group by department order by avg_salary desc; 这里先使用group by按部门分组,再用avg函数计算平均薪水,最后用order by进行排序。

连接查询

当数据分散在多个表中时,就需要使用连接查询。常见的连接方式有内连接(inner join)、左连接(left join)等。假设存在员工表和部门表,员工表中有员工id和部门id,部门表中有部门id和部门名称。要查询每个员工所属的部门名称,可使用内连接:select employee.name, department.department_name from employee inner join department on employee.department_id = department.department_id; 内连接会只返回两个表中匹配的记录。

子查询

子查询是在一个查询中嵌套另一个查询。例如,要查询薪水高于平均薪水的员工信息。可以先使用子查询计算出平均薪水,再在主查询中筛选出符合条件的员工。sql语句为:select * from employee where salary > (select avg(salary) from employee); 子查询可以让复杂的查询变得更清晰。

窗口函数

窗口函数是sql中比较高级的功能,它可以在不进行分组的情况下对数据进行计算。比如,要查询每个员工在所在部门的薪水排名。可以使用rank()窗口函数:select employee_id, name, department, salary, rank() over (partition by department order by salary desc) as salary_rank from employee; 这里partition by按部门分区,order by按薪水降序排序,rank()函数为每个员工在所在部门的薪水进行排名。

总之,掌握好这些sql数据分析面试题,能大大提高你在面试中的竞争力。平时要多练习,在面试中才能游刃有余。

以下为推荐内容

微信二维码