SQL大神带你飞 | 24春招京东SQL真题解析-用户订单信息查询
用户订单信息查询
https://www.nowcoder.com/practice/dccec8456d774169925c0d50843ea076
最近做了京东的24年春招题,题目如下:
题目分析
在这道题目中,我们需要从两个表中提取数据:orders
和 customers
。以下是每个表的结构及字段的汉语意思:
-
orders(订单表)
order_id
:订单IDcustomer_id
:客户IDtotal_amount
:订单总金额
-
customers(客户表)
customer_id
:客户IDcity
:城市
目标:计算每个城市的订单总金额。
输出要求:输出每个城市的名称及其订单总金额,按订单总金额降序排列,如果总金额相同则按城市名称升序排列。
知识点关键词:SQL连接、聚合函数、分组、排序
解答步骤
-
连接表
我们需要将
orders
表和customers
表连接在一起,以便获取每个订单的城市信息。使用JOIN
语句通过customer_id
字段连接两个表。from orders o join customers c on c.customer_id = o.customer_id
-
计算城市订单总金额
使用
SUM
函数计算每个城市的订单总金额。通过GROUP BY
语句按城市分组,以便对每个城市的订单金额进行求和。select c.city, sum(o.total_amount) as total_order_amount group by c.city
-
排序
使用
ORDER BY
语句按订单总金额降序排列结果,如果总金额相同则按城市名称升序排列。order by total_order_amount desc, c.city asc
完整代码
select c.city,
sum(o.total_amount) as total_order_amount
from orders o
join customers c on c.customer_id = o.customer_id
group by c.city
order by total_order_amount desc, c.city asc
近似题目练习推荐
- 知识点:SQL连接、聚合函数、分组、日期函数
- 知识点:字符串处理、聚合函数、分组
- 知识点:SQL连接、聚合函数、分组