- 2
- 0
- 约9.02千字
- 约 20页
- 2026-01-31 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年数据分析师招聘面试题及SQL技能含答案
一、SQL基础题(共5题,每题6分,总计30分)
1.SQL基础查询
题目:
假设有一个名为`sales`的表,包含以下字段:`sale_id`(销售ID,主键)、`product_id`(产品ID)、`customer_id`(客户ID)、`sale_date`(销售日期)、`amount`(销售金额)。请编写SQL查询,统计2025年每个产品的总销售额,结果按销售额降序排列。
答案:
sql
SELECTproduct_id,SUM(amount)AStotal_sales
FROMsales
WHEREYEAR(sale_date)=2025
GROUPBYproduct_id
ORDERBYtotal_salesDESC;
解析:
-`YEAR(sale_date)=2025`:筛选2025年的销售记录。
-`SUM(amount)`:计算每个产品的总销售额。
-`GROUPBYproduct_id`:按产品ID分组统计。
-`ORDERBYtotal_salesDESC`:按销售额降序排列。
2.SQL条件查询
题目:
假设有一个名为`employees`的表,包含以下字段:`employee_id`(员工ID,主键)、`name`(姓名)、`department`(部门)、`salary`(薪资)、`join_date`(入职日期)。请编写SQL查询,找出2023年入职且薪资高于部门平均薪资的员工姓名和部门。
答案:
sql
SELECTe.name,e.department
FROMemployeese
WHEREe.join_dateBETWEEN2023-01-01AND2023-12-31
ANDe.salary(
SELECTAVG(salary)
FROMemployees
WHEREdepartment=e.department
);
解析:
-`JOIN_DATEBETWEEN2023-01-01AND2023-12-31`:筛选2023年入职的员工。
-子查询`SELECTAVG(salary)FROMemployeesWHEREdepartment=e.department`:计算每个部门的平均薪资。
-`e.salary...`:筛选薪资高于部门平均值的员工。
3.SQL连接查询
题目:
假设有两个表:`orders`(订单表,字段:`order_id`、`customer_id`、`order_date`)和`order_items`(订单项表,字段:`order_id`、`product_id`、`quantity`)。请编写SQL查询,统计每个客户的订单总数量,结果按订单数量降序排列。
答案:
sql
SELECTo.customer_id,SUM(oi.quantity)AStotal_quantity
FROMorderso
JOINorder_itemsoiONo.order_id=oi.order_id
GROUPBYo.customer_id
ORDERBYtotal_quantityDESC;
解析:
-`JOINorder_itemsoiONo.order_id=oi.order_id`:通过`order_id`连接订单表和订单项表。
-`SUM(oi.quantity)`:计算每个客户的订单总数量。
-`GROUPBYo.customer_id`:按客户ID分组统计。
-`ORDERBYtotal_quantityDESC`:按订单数量降序排列。
4.SQL窗口函数
题目:
假设有一个名为`sales`的表,包含以下字段:`sale_id`(销售ID,主键)、`region`(地区)、`product_id`(产品ID)、`amount`(销售金额)。请编写SQL查询,为每个产品计算每个地区的销售额占比,结果按地区降序排列。
答案:
sql
WITHtotal_sales_by_productAS(
SELECTproduct_id,SUM(amount)AStotal_amount
FROMsales
GROUPBYproduct_id
)
SELECT
s.region,
s.product_id,
s.amount,
(s.amount/t.total_amount)100ASpercentage
FROMsaless
JOINtotal_sales
原创力文档

文档评论(0)