【发布时间】:2012-07-03 18:55:09
【问题描述】:
我有近 15000 个数据行,第一列包含日期格式:
2012-05-10 09:00:00.000
我需要按年、月、日、小时对这些数据进行排序,例如:
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)
【问题讨论】:
-
您无法按年份对结果进行排序,因为它不包含在您的分组依据中。例如,
2012-05-10 09:00和2011-05-10 09:00的值将在同一个组中结束。 -
您当前的查询无法编译。
-
您似乎缺少
FROM子句。 -
如果你只是想要它排序,为什么你有一个 group by 和一个 having 子句?
标签: sql group-by sql-order-by