我有一个数据库表,其中包含一分钟的打开,关闭,高,低,成交量值,以获取证券。我使用的是SQL Server 2017,但可以选择使用2019 RC。
我正在尝试找到一种有效的SQL Server查询,该查询可以将这些查询聚合到5分钟的窗口中,其中:
- 打开=窗口的第一个打开值
- Close =窗口的最后关闭值
- 高=最大窗口的高值
- 低=最小值窗口的低值
- Volume =整个窗口的平均体积
理想情况下,此查询将考虑数据中的差异,即基于日期计算,而不是计算前/后行。
例如说我有(这是6分钟的数据):
| Time | Open | Close | High | Low | Volume | |------------------|------|-------|------|-----|--------| | 2019-10-30 09:30 | 5 | 10 | 15 | 1 | 125000 | | 2019-10-30 09:31 | 10 | 15 | 20 | 5 | 100000 | | 2019-10-30 09:32 | 15 | 20 | 25 | 10 | 120000 | | 2019-10-30 09:33 | 20 | 25 | 30 | 15 | 10000 | | 2019-10-30 09:34 | 20 | 22 | 40 | 2 | 13122 | | 2019-10-30 09:35 | 22 | 30 | 35 | 4 | 15000 | Not factored in,since this would be the first row of the next 5-minute window
我正在尝试编写一个查询,该查询将给我(这是5分钟汇总的第一个示例):
| Time | Open | Close | High | Low | Volume | |------------------|------|-------|------|-----|---------| | 2019-10-30 09:30 | 5 | 30 | 40 | 1 | 50224.4 |
有什么提示吗?我正在用OVER子句及其PARTITION / RANGE选项将我的头撞在墙上