我有一个名为包含Vehicle_Location列(及以上)表的MIN():获取一个COUNT(*)列
ID NUMBER(10)
SEQUENCE_NUMBER NUMBER(10)
TIME DATE
,我试图得到最大/最小/平均数量的记录每天每个ID。
到目前为止,我有
select id, to_char(time), count(*) as c
from vehicle_location
group by id, to_char(time), min having id = 16
这给了我:
ID TO_CHAR(TIME) COUNT(*)
---------------------- ------------- ----------------------
16 11-05-31 159
16 11-05-23 127
16 11-06-03 56
所以我想获得的COUNT(*)列的最小/最大/平均值。我使用Oracle作为RDBMS。
小点,但使用'TO_CHAR(TIME)'得到一天组件依赖于你有'NLS_DATE_FORMAT'设置的东西,不包括时间。更常见的做法是用'TRUNC(TIME)'。在这种情况下我会穿上'ID过滤器= 16'的'where'条款,而不是'having'子句中,因为它不需要分组后进行评估 - 无论是工作,但你可能会打使用'where'的索引。 – 2011-06-07 07:31:54