我正在使用oracle 10g并编写了这样的查询:
SELECT presenttime,
employeeid
FROM mobilelocation
WHERE presentdate = '31-10-2011'
GROUP BY employeeid;
产生错误消息
ORA-00979: not a GROUP BY expression
但删除此组子句后返回结果没有任何错误,
PRESENTTIME EMPLOYEEID
23:25 12304
23:48 12305
我的group by子句有什么问题,并建议我如何使用 order by 子句
答案 0 :(得分:5)
GROUP BY
表示您希望将表中的多行聚合为每个EmployeeID
值的单行。如果这是您的目标,则需要在未分组的列上指定聚合函数。例如,如果您想要每个PresentTime
的最早EmployeeID
值,则可以执行类似
SELECT EmployeeID, MIN(PresentTime) earliestPresentTime
FROM mobileLocation
WHERE PresentDate = date '2011-10-31'
GROUP BY EmployeeID
答案 1 :(得分:1)
您需要按presenttime,employeeID
进行分组至于顺序;它类似于group by。
按employeeID,presentTIme(desc)订购
如果未定义聚合(min,max,sum,count等),则选择部分中的任何项目必须按部分分组。