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

题目分析

表结构

  • account 表:包含以下字段:
    • account_id:账户号,主键。
    • balance:账户余额。
    • customer_id:账户所属的客户号。

目标

  • 查询每个客户的账户总金额。

输出要求

  • 按照总金额从高到低排序。
  • 当总金额相等时,按 customer_id 升序排序。

知识点关键词

  • 聚合函数:SUM
  • 分组:GROUP BY
  • 排序:ORDER BY

解答步骤

1. 计算每个客户的账户总金额

我们需要使用 SUM 函数来计算每个客户的账户总金额。通过 GROUP BY 子句按 customer_id 分组。

select
    customer_id,
    sum(balance) as sum_balance
from
    account
group by
    customer_id
  • SUM(balance) AS sum_balance:计算每个客户的账户总金额。
  • GROUP BY customer_id:按客户ID分组。

2. 排序输出

我们需要按总金额降序排列,如果总金额相同,则按 customer_id 升序排列。

order by
    sum_balance desc,
    customer_id asc
  • ORDER BY sum_balance DESC:按总金额降序排列。
  • ORDER BY customer_id ASC:当总金额相同时,按客户ID升序排列。

完整代码

select
    customer_id,
    sum(balance) as sum_balance
from
    account
group by
    customer_id
order by
    sum_balance desc,
    customer_id asc;

近似题目推荐

  1. 获取指定客户每月的消费额

    • 知识点:聚合函数、分组、排序
  2. 统计各等级会员用户下订单总额

    • 知识点:聚合函数、分组
  3. 分组计算练习题

    • 知识点:聚合函数、分组、排序