首页 > 试题广场 >

开发者需要找出所有订单金额高于平均值的用户。以下查询中,哪个

[单选题]
开发者需要找出所有订单金额高于平均值的用户。以下查询中,哪个能高效返回正确结果而不导致错误?
  • SELECT user_id FROM orders WHERE amount > AVG(amount)
  • SELECT user_id FROM orders WHERE amount > (SELECT AVG(amount) FROM orders)
  • SELECT user_id FROM orders GROUP BY user_id HAVING AVG(amount) > amount
  • SELECT user_id, AVG(amount) FROM orders GROUP BY user_id HAVING amount > AVG(amount)
- 选项C: 它先按 user_id 分组,然后用 HAVING AVG(amount) > amount 。但分组后 amount 是“单个订单金额”, AVG(amount) 是“该用户的平均订单金额”,逻辑上“用户平均金额 > 单个订单金额”不是题目要的“订单金额 > 所有订单的平均值”,而且语法也不匹配。
发表于 今天 17:26:33 回复(0)