oracle10g中的GROUPBY子句
我正在使用oracle 10g,并编写了如下查询: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
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