2
SELECT ssn, fname, minit, lname, AVG(hours)
FROM EMPLOYEE, WORKS_ON
WHERE EMPLOYEE.ssn = WORKS_ON.essn
GROUP BY hours
ORDER BY AVG(hours) DESC

ORA-00979のエラーが表示されます:GROUPBY式ではありません

なぜ動かないのかしら?ところで、すべてのテーブルが存在し、エラーはありません。OracleAE11gでのその===========UPDATE==========================要求されたテーブル

SSN FNAME   MINIT   LNAME   AVG(HOURS)
888665555   James   E   Borg    -
666884444   Ramesh  K   Narayan 40
999887777   Alicia  J   Zelaya  20
987987987   Ahmad   V   Jabbar  20
453453453   Joyce   A   English 20
123456789   John    B   Smith   20
987654321   Jennifer    S   Wallace 17.5
333445555   Franklin    T   Wong    7.33333333333333333333333333333333333333
4

3 に答える 3

3

私はあなたGROUP BYが集約された列を意味したと思います:

SELECT ssn, fname, minit, lname, AVG(hours)
FROM EMPLOYEE, WORKS_ON
WHERE EMPLOYEE.ssn = WORKS_ON.essn
GROUP BY ssn, fname, minit, lname
ORDER BY AVG(hours) DESC
于 2013-03-20T21:17:14.443 に答える
3

私はあなたがあなたが必要とするものの正反対によってグループ化していると思います。あなたが欲しい:

SELECT ssn, fname, minit, lname, AVG(hours)
FROM EMPLOYEE, WORKS_ON
WHERE EMPLOYEE.ssn = WORKS_ON.essn
GROUP BY ssn, fname, minit, lname
ORDER BY AVG(hours) DESC
于 2013-03-20T21:17:26.197 に答える
2

集計関数を使用しているためAVG(hours)、残りの結果をグループ化する必要があります。

SELECT ssn, fname, minit, lname, AVG(hours)
FROM EMPLOYEE, WORKS_ON
WHERE EMPLOYEE.ssn = WORKS_ON.essn
GROUP BY ssn, fname, minit, lname
ORDER BY AVG(hours) DESC
于 2013-03-20T21:17:12.490 に答える