校招算法笔面试 | SQL笔试面试编程题-每个客户的账户总金额

题目

题目链接

最近做了京东的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;

近似题目推荐

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

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

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

    • 知识点:聚合函数、分组、排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值