我通过语句在我的组中收到oracle错误,我的group by不是表达式。这似乎适用于MYSQL。
SELECT pname, PNUMBER, SUM(HOURS)
FROM PROJECT, WORKS_ON w, EMPLOYEE e
WHERE w.essn=e.ssn AND pnumber=pno
GROUP BY PNUMBER;
连连呢?感谢
答案 0 :(得分:2)
当您使用GROUP BY
时,SELECT
子句中允许的唯一表达式是 *
GROUP BY
列表中, PNUMBER
没问题,因为它位于GROUP BY
列表中; SUM(HOURS)
没问题,因为它使用SUM
聚合器。
这给我们留下pname
,这两者都不是。根据您尝试实现的目标,您需要对其进行汇总,将其添加到GROUP BY
,或从SELECT
列表中排除。
GROUP BY
形成查询。
答案 1 :(得分:1)
和mySQL不一样,你忘记了PNAME
SELECT pname, PNUMBER, SUM(HOURS)
FROM PROJECT, WORKS_ON w, EMPLOYEE e
WHERE w.essn=e.ssn AND pnumber=pno
GROUP BY PNUMBER, **PNAME**;