最近做了京东的24年春招题,题目如下:
题目分析
表结构:
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;
近似题目推荐
-
- 知识点:聚合函数、分组、排序
-
- 知识点:聚合函数、分组
-
- 知识点:聚合函数、分组、排序