我有两个表销售人员和成员,其中salesid是salespeople表中的pk和成员表中的foreignkey,我正在尝试获取每个销售人员正在使用的成员数量。
但我的sql查询抛出一个错误,表明不是按表达式分组。我尝试使用连接解决它,但这也不起作用。
SELECT s.firstname, s.lastname, COUNT(s.salesid) AS MemCount
FROM salespeople s
LEFT JOIN members m ON s.salesid = m.salesid
GROUP BY s.salesid;
ORA-00979: not a GROUP BY expression
如果有人能对这个问题有所了解,我将不胜感激。
非常感谢。
答案 0 :(得分:0)
您选择的字段(firstname, lastname)
不在group by
(salesid)
中。由于不在group by
中的字段可能会在组内发生变化,因此数据库无法知道要返回的组中的哪个值,因此很多dbs都不允许您选择不在你的小组中。
您可以通过将名字,姓氏添加到您的组中来修改您的查询,即
... group by m.salesid, s.firstname, s.lastname