У меня есть историческая таблица, подобная этой:
+------------------+------------------+---------+-------+
| valid_from | valid_to | Profit | ID |
+------------------+------------------+---------+-------+
| 20.05.2019 00:02 | 22.05.2019 23:42 | 10 | 12345 |
| 22.05.2019 23:42 | 28.05.2019 13:11 | 10 | 12345 |
| 28.05.2019 13:11 | 28.05.2019 23:59 | 10 | 12345 |
| 28.05.2019 23:59 | 29.05.2019 06:48 | 123 | 12345 |
| 29.05.2019 06:48 | 29.05.2019 13:21 | 123 | 12345 |
| 29.05.2019 13:21 | 29.05.2019 23:59 | 123 | 12345 |
| 29.05.2019 23:59 | 30.05.2019 06:39 | 10 | 12345 |
| 30.05.2019 06:39 | 30.05.2019 12:37 | 123 | 12345 |
| 30.05.2019 12:37 | 31.05.2019 00:09 | 123 | 12345 |
| 31.05.2019 00:09 | 31.05.2019 08:41 | 145 | 12345 |
| 31.05.2019 08:41 | 01.06.2019 00:22 | 145 | 12345 |
+------------------+------------------+---------+-------+
Я удалил несколько столбцов.Строки 1, 2 и 3 теперь можно суммировать.
Сначала я попробовал следующее выражение GROUP-BY:
SELECT MIN(valid_from ) AS valid_from
,MAX(valid_to ) AS valid_to
,Profit
,ID
INTO [repaired_archiv]
FROM temp.[wrong_archiv]
GROUP BY Profit
,ID
Результат:
+------------------+------------------+---------+-------+
| valid_from | valid_to | Profit | ID |
+------------------+------------------+---------+-------+
| 20.05.2019 00:02 | 30.05.2019 06:39 | 10 | 12345 |
| 28.05.2019 23:59 | 31.05.2019 00:09 | 123 | 12345 |
| 31.05.2019 00:09 | 01.06.2019 00:22 | 145 | 12345 |
+------------------+------------------+---------+-------+
, нокак видите, столбец valid_to в первой строке не так.Причиной этого является неправильное утверждение GROUP-BY.Я не знаю, как получить мой предполагаемый результат, как это:
+------------------+------------------+---------+-------+
| valid_from | valid_to | Profit | ID |
+------------------+------------------+---------+-------+
| 20.05.2019 00:02 | 28.05.2019 23:59 | 10 | 12345 |
| 28.05.2019 23:59 | 29.05.2019 23:59 | 123 | 12345 |
| 29.05.2019 23:59 | 30.05.2019 06:39 | 10 | 12345 |
| 30.05.2019 06:39 | 31.05.2019 00:09 | 123 | 12345 |
| 31.05.2019 00:09 | 01.06.2019 00:22 | 145 | 12345 |
+------------------+------------------+---------+-------+