【发布时间】:2012-03-09 13:57:58
【问题描述】:
我使用的是 SQL Server 2008 R2,需要创建按时间间隔分组的新表。
数据来自股票市场指数。我有 1 分钟间隔的数据,现在我需要 5,10,15,30,45,60... 分钟间隔的数据。我的主键是时间戳。
我的问题是:如何查询 1 分钟数据表以返回按特定时间间隔(例如 5 分钟间隔)分组的数据。
查询必须返回该特定组中的最高、最低、最后和第一个值,最重要的是还必须返回该组中时间戳的最后一个条目。
我对 SQL 语言非常陌生,并且尝试过在网上找到的大量代码,但我无法准确返回所需的结果。
数据:
TimeStamp | Open | High | Low | Close
2012-02-17 15:15:0 | 102 | 110 |100 |105
2012-02-17 15:16:0 |106 |112 |105 |107
2012-02-17 15:17:0 | 106 |110 |98 |105
2012-02-17 15:18:0 |105 |109 |104 |106
2012-02-17 15:19:0 |107 |112 |107 |112
2012-02-17 15:20:0 |115 |125 |115 |124
所需的查询结果(5 分钟):
Timestamp |Open|High|Low|Close
2012-02-15:19:0 |102 |125 |98 |124
2012-02-15:24:0 |115.|....|...|...
2012-02-15:29:0 |....|....|...|...
【问题讨论】:
-
欢迎使用 StackOverflow:如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上以很好地格式化和语法突出显示它!
标签: sql-server tsql group-by timestamp finance