SQL练习题多字段排序失效:平均贷款费降序后姓名升序不生效如何解决
问题原因
你的代码存在3个核心问题:
- 关键字拼写错误:
SELECT被误写为SELCT - 派生表未指定别名:所有作为查询来源的子查询都必须设置别名,否则会触发语法错误
- 排序规则位置错误:排序逻辑写在中间层子查询中,外层查询不会默认保留内层的排序结果,导致姓名排序不生效
修正代码
不需要嵌套多层子查询,使用HAVING直接过滤聚合结果即可,简化后逻辑如下:
SELECT first_name, last_name, ROUND(AVG(payment.amount), 2) AS Leihgebuehr FROM payment INNER JOIN customer ON payment.customer_id = customer.customer_id GROUP BY first_name, last_name HAVING AVG(payment.amount) > 5 ORDER BY AVG(payment.amount) DESC, first_name ASC, last_name ASC;
你当前的输出结果

内容的提问来源于stack exchange,提问作者Keydoo
相关产品推荐
相关产品推荐

