Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle10g中的GROUPBY子句_Oracle_Oracle10g - Fatal编程技术网

oracle10g中的GROUPBY子句

oracle10g中的GROUPBY子句,oracle,oracle10g,Oracle,Oracle10g,我正在使用oracle 10g,并编写了如下查询: SELECT presenttime, employeeid FROM mobilelocation WHERE presentdate = '31-10-2011' GROUP BY employeeid; 产生一条错误消息 ORA-00979: not a GROUP BY expression 但在删除此group子句后,将返回结果,但不会出现类似的错误 PRESENTTIME EMPLOYEEID 23:25

我正在使用oracle 10g,并编写了如下查询:

SELECT presenttime,
       employeeid
  FROM mobilelocation
 WHERE presentdate = '31-10-2011'
 GROUP BY employeeid;
产生一条错误消息

ORA-00979: not a GROUP BY expression
但在删除此group子句后,将返回结果,但不会出现类似的错误

PRESENTTIME EMPLOYEEID
23:25   12304
23:48   12305

我的group by子句有什么问题,并建议我如何使用order by子句也

您需要根据当前时间和员工ID进行分组

就订单而言;它类似于groupby

按员工ID、当前时间(描述)排序


如果未定义聚合(最小值、最大值、总和、计数等),则“选择部分”中的任何项目都必须按部分分组。

您需要按当前时间和员工ID进行分组

就订单而言;它类似于groupby

按员工ID、当前时间(描述)排序


如果未定义聚合率(最小值、最大值、总和、计数等),则select部分中的任何项都必须在group by部分中。

group by
意味着您要为每个
员工ID
值将表中的多行聚合为一行。如果这是您的目标,则需要在未分组的列上指定聚合函数。例如,如果您想要每个
员工ID
的最早
PresentTime
值,您可以执行以下操作

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

groupby
意味着您希望将表中的多行聚合为一行,以获得每个
EmployeeID
值。如果这是您的目标,则需要在未分组的列上指定聚合函数。例如,如果您想要每个
员工ID
的最早
PresentTime
值,您可以执行以下操作

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