SQL大神带你飞 | 24春招京东SQL真题解析-用户订单信息查询

用户订单信息查询

https://www.nowcoder.com/practice/dccec8456d774169925c0d50843ea076

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

题目分析

在这道题目中,我们需要从两个表中提取数据:orderscustomers。以下是每个表的结构及字段的汉语意思:

  1. orders(订单表)

    • order_id:订单ID
    • customer_id:客户ID
    • total_amount:订单总金额
  2. customers(客户表)

    • customer_id:客户ID
    • city:城市

目标:计算每个城市的订单总金额。

输出要求:输出每个城市的名称及其订单总金额,按订单总金额降序排列,如果总金额相同则按城市名称升序排列。

知识点关键词:SQL连接、聚合函数、分组、排序

解答步骤

  1. 连接表

    我们需要将 orders 表和 customers 表连接在一起,以便获取每个订单的城市信息。使用 JOIN 语句通过 customer_id 字段连接两个表。

    from orders o
    join customers c on c.customer_id = o.customer_id
    
  2. 计算城市订单总金额

    使用 SUM 函数计算每个城市的订单总金额。通过 GROUP BY 语句按城市分组,以便对每个城市的订单金额进行求和。

    select c.city,
    sum(o.total_amount) as total_order_amount
    group by c.city
    
  3. 排序

    使用 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连接、聚合函数、分组
全部评论

相关推荐

04-03 11:37
武汉大学 Java
高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务