我知道这个问题有一个简单的答案,但我无法理解它。我有一个包含 datetime 和 int 列的表。
| TimeStartTz | RowNumber | RateID |
|-------------------------|-----------|-------------|
| 2018-05-07 07:00:00.000 | 45 | 1 |
| 2018-04-09 07:00:00.000 | 43 | 1 |
| 2018-03-26 07:00:00.000 | 42 | 1 |
| 2018-03-19 07:00:00.000 | 41 | 1 | <-- want this row
| 2018-03-05 07:00:00.000 | 2 | 2 |
| 2018-02-26 07:00:00.000 | 1 | 2 |
| 2018-02-19 07:00:00.000 | 40 | 1 |
| 2018-02-12 07:00:00.000 | 39 | 1 |
| 2018-01-29 06:45:00.000 | 38 | 1 |
| 2018-01-22 06:45:00.000 | 37 | 1 |
如果集合中没有更改,我想获取 RateID 中最近更改的行或第一行,即在示例中为RowNumber
41 的行。我尝试按 RateID 进行分区,但它显然不考虑连续部分:
ROW_NUMBER() OVER (PARTITION BY pq.[RateID] ORDER BY pq.[TimeStart]) RowNumber