消息8120-列在选择列表中无效,因为它既未包含在聚合函数中,也未包含在GROUP BY子句[CLOSED]中

qmelpv7a  于 2022-10-03  发布在  其他
关注(0)|答案(1)|浏览(162)

**已关闭。**此问题为not reproducible or was caused by typos。它目前不接受答案。

这个问题是由打字错误或不能再复制的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式对未来的读者不太可能有帮助。

昨天关门了。
Improve this question

select sum(orderinfo.orderamount) as total, userinfo.username
from orderinfo
left join userinfo on orderinfo.userid = userinfo.userid
group by orderinfo.userid
order by total desc

表格orderinfo:

userid
orderamount

表用户信息:

userid
username

我需要搜索前10名最常购买的用户与他们的名字。

但我得到了这样的错误:
MSG 8120,Level 16,State 1,Line 1
列‘userinfo.username’在选择列表中无效,因为它既未包含在聚合函数中,也未包含在GROUP BY子句中。

我正在使用SSMS。我一定是做错了什么……请帮帮我

谢谢

92dk7w1h

92dk7w1h1#

不能既按userid聚合,又选择username。这里最快的解决方法是同时聚合useridusername

SELECT SUM(oi.orderamount) AS total, ui.username
FROM orderinfo oi
LEFT JOIN userinfo ui ON oi.userid = ui.userid
GROUP BY ui.userid, ui.username
ORDER BY total DESC;

相关问题