2012-07-03 105 views
0
订购

我有包含日期​​格式的第一列近15000数据行: 2012-05-10 09:00:00.000GROUP BY,由日期时间

我需要这个数据按年则月,日,然后小时,以便于进行排序例如:

  2012-05-10 09:00:00.000 
     2012-05-10 10:00:00.000 
     2012-05-10 11:00:00.000 
     2012-05-10 12:00:00.000 
     2012-05-11 09:00:00.000 
     2012-05-11 10:00:00.000 
     2012-05-11 11:00:00.000 
     2012-05-11 12:00:00.000 
     2012-06-01 02:00:00.000 
     2012-06-01 03:00:00.000 
     2012-06-01 04:00:00.000 
     2012-06-01 05:00:00.000 

当前SQL查询做,这是下面:

SELECT MIN(Datetime) GROUP BY DATEPART(M,jmusa_LOG1.DateTime),DATEPART(D,jmusa_LOG1.DateTime),DATEPART(HH,jmusa_LOG1.DateTime) HAVING MIN(jmusa_LOG1.DateTime) NOT IN(SELECT DateTime FROM AverageRawData)

ORDER BY DATEPART(M,jmusa_LOG1.DateTime),DATEPART(D,jmusa_LOG1.DateTime),DATEPART(HH,jmusa_LOG1.DateTime)

+0

您无法按年份对结果进行排序,因为这不包含在您的分组中。例如,“2012-05-10 09:00”和“2011-05-10 09:00”的值将最终在同一组中。 – Guffa

+1

您当前的查询不能编译。 – RedFilter

+0

看起来你错过了一个'FROM'子句。 –

回答

1

你描述一个正常的日期排序,所以你可以这样做:

select MyDate 
from AverageRawData 
order by MyDate 

如果你不想重复,加上DISTINCT这样的:

select distinct MyDate 
from AverageRawData 
order by MyDate 

如果这样做不符合您的要求,请提供用于生成输出示例的示例数据。

+0

我正在使用Group by和order by,因为我在上面的代码中没有显示其他列中的聚合 – jacobronniegeorge

+0

请发布示例数据和所需输出。 – RedFilter

+0

由于数据太大,我把它放在一个csv文件中:http://www.sendspace.com/file/c1rxlr我希望平均数据按月份和日期和年份排序。所以当Select语句对其他列进行平均时,它们将根据日期和按小时进行排列 – jacobronniegeorge