2011-11-09 33 views
1

我使用Oracle 10g和写这样的查询:组由Oracle10g的条款

SELECT presenttime, 
     employeeid 
    FROM mobilelocation 
WHERE presentdate = '31-10-2011' 
GROUP BY employeeid; 

导致的错误信息

ORA-00979: not a GROUP BY expression 

但在去除这组条款returining结果没有任何错误像这样,

PRESENTTIME EMPLOYEEID 
23:25 12304 
23:48 12305 

我的group by子句有什么问题,并且还建议我如何使用ORDER BY子句

回答

5

GROUP BY意味着要为表EmployeeID的每个值将表中的多行聚合为一行。如果这是您的目标,则需要在未分组的列上指定聚合函数。例如,如果您希望每个EmployeeID的值最早为PresentTime,则您可以执行类似

SELECT EmployeeID, MIN(PresentTime) earliestPresentTime 
    FROM mobileLocation 
WHERE PresentDate = date '2011-10-31' 
GROUP BY EmployeeID 
1

您同时按presenttime需要组,雇员

至于秩序的;它与群相似。

排序EMPLOYEEID,presentTIme(降序)

如果未限定的汇集起来在选择部必须是组由部中的任何项(最小,最大,求和,计数等)