如何在生成的表中进行分组

时间:2015-04-26 19:29:03

标签: database oracle

我有两个表销售人员和成员,其中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

如果有人能对这个问题有所了解,我将不胜感激。

非常感谢。 enter image description here

1 个答案:

答案 0 :(得分:0)

您选择的字段(firstname, lastname)不在group by (salesid)中。由于不在group by中的字段可能会在组内发生变化,因此数据库无法知道要返回的组中的哪个值,因此很多dbs都不允许您选择不在你的小组中。

您可以通过将名字,姓氏添加到您的组中来修改您的查询,即

... group by m.salesid, s.firstname, s.lastname