假设有一个银行的账户表account如下(每个客户可能有多个账户), 其中包含账户号(account_id)、账户余额(balance)和账户所属的客户号(customer_id)三个字段。 请编写一条SQL语句,查询每个客户的账户总金额,并按照总金额从高到低排序(当总金额相等时,按customer_id升序排序)。

示例输出如下:

CREATE TABLE account ( account_id INT PRIMARY KEY, balance DECIMAL(10,2), customer_id INT ); INSERT INTO account VALUES (100, 1000.00, 1); INSERT INTO account VALUES (101, 2000.00, 1); INSERT INTO account VALUES (103, 3000.00, 2); INSERT INTO account VALUES (104, 4000.00, 2); INSERT INTO account VALUES (105, 5000.00, 3); INSERT INTO account VALUES (106, 6000.00, 3);
customer_id|sum_balance 3|11000.00 2|7000.00 1|3000.00
考点:排序
限制 1 秒 / 256MB | SQL 题
本题是 SQL 题:给出建表语句与目标结果,要求写出查询语句。
建议步骤
GROUP BY 聚合,过滤分组结果用 HAVING。ROW_NUMBER()、RANK()、SUM() OVER)。易错点:排序方向写反;GROUP BY 后选了非分组字段;没做 ROUND 保留小数;空值参与聚合。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年春招-京东-技术通用岗位-第二批笔试。