最近做了京东的24年春招题,题目如下:

alt alt

题目分析

本题要求筛选质量分数大于80且成本小于50的供应商组件记录,输出供应商ID、供应商名称、组件名称、质量分数和成本。
输出字段

  • supplier_id(供应商ID)
  • supplier_name(供应商名称)
  • component_name(组件名称)
  • quality_score(质量分数)
  • cost(成本)

输出顺序

  • 先按供应商ID升序(sc.supplier_id asc)
  • 再按成本升序(sc.cost asc)

涉及知识点

  • SQL 多表连接(JOIN)
  • 条件筛选(WHERE + 多条件)
  • 字段别名与排序(ORDER BY)

解答步骤

1. 关联供应商质量成本、组件和供应商信息

  • supply_quality_cost 供应商质量成本表与 components 组件表通过组件ID连接,获取组件名称。
  • 再与 suppliers 供应商表通过供应商ID连接,获取供应商名称。
from supply_quality_cost sc 
join components c on c.component_id = sc.component_id
join suppliers s on sc.supplier_id = s.supplier_id

2. 筛选符合条件的记录

  • 只保留质量分数大于80且成本小于50的记录。
where sc.quality_score > 80 and sc.cost < 50

3. 排序输出

  • 按供应商ID升序、成本升序排序。
order by sc.supplier_id asc, sc.cost asc

完整代码

select s.supplier_id, s.supplier_name, c.component_name, sc.quality_score, sc.cost
from supply_quality_cost sc 
join components c on c.component_id = sc.component_id
join suppliers s on sc.supplier_id = s.supplier_id
where sc.quality_score > 80 and sc.cost < 50 
order by sc.supplier_id asc, sc.cost asc

近似题目练习推荐

查找某个年龄段的用户信息

  • 知识点:条件筛选

分析不同门店各类商品的库存情况和销售情况

  • 知识点:条件筛选、多表连接、join

如需更多类似题目,可在牛客网SQL练习区进行练习。