我有一个这样的模式:具有属性“user_id”和“username”的用户表 以及具有属性“customer_id”(user_id 的 FK)和“finalPrice”的订单表 数据库架构 我想要获得所有订单组合中价格最高的用户(基本上是订单的所有 FinalPrice 值的总和,其中 customer_id = user_id) 无法完全想出解决方案,因此将感谢您的支持
select sum( (select o.final_price from `order` o where u.user_id=o.customer_id)) from user u group by u.user_id
是我尝试过的,但我不断遇到 “子查询返回超过 1 行”
错误消息。尝试阅读文档,但我对 SQL 仍然非常缺乏经验。
P粉7104789902024-04-07 17:24:28
根据您的查询
您不能像这样使用 SUM
函数,而是使用内部的 SUM,这就是为什么它会抛出类似 Subquery 返回超过 1 行的错误
SELECT u.user_id, (SELECT SUM(o.final_price) FROM `order` o WHERE u.user_id=o.customer_id) FROM user u GROUP BY u.user_id;