Вы, похоже, хотите обновить исходную таблицу. Вы можете использовать ROW_NUMBER()
в CTE для ранжирования записей с группами, имеющими одинаковую дату (без времени) и pid, упорядоченными по дате (со временем), а затем выполнить обновление на лету:
WITH cte AS (
SELECT
pid,
ProcessedDate,
AppNo,
ROW_NUMBER() OVER(PARTITION BY pid, CAST(ProcessedDate AS DATE) ORDER BY ProcessedDate) rn
FROM mytable
)
UPDATE cte SET AppNo = rn
Демонстрация на БД Fiddle
Исходные данные:
PID | AppNo | ProcessedDate
--: | ----: | :---------------
11 | <em>null</em> | 09/30/2019 18:21
3 | <em>null</em> | 09/25/2019 08:37
3 | <em>null</em> | 09/25/2019 08:37
11 | <em>null</em> | 09/25/2019 08:39
11 | <em>null</em> | 09/25/2019 08:40
7 | <em>null</em> | 09/26/2019 14:19
7 | <em>null</em> | 09/26/2019 14:20
7 | <em>null</em> | 09/26/2019 14:22
2 | <em>null</em> | 09/26/2019 14:23
11 | <em>null</em> | 09/26/2019 14:23
11 | <em>null</em> | 09/26/2019 14:24
11 | <em>null</em> | 09/26/2019 14:24
3 | <em>null</em> | 09/26/2019 14:24
После выполнения запроса:
PID | AppNo | ProcessedDate
--: | ----: | :---------------
11 | 1 | 09/30/2019 18:21
3 | 1 | 09/25/2019 08:37
3 | 2 | 09/25/2019 08:37
11 | 1 | 09/25/2019 08:39
11 | 2 | 09/25/2019 08:40
7 | 1 | 09/26/2019 14:19
7 | 2 | 09/26/2019 14:20
7 | 3 | 09/26/2019 14:22
2 | 1 | 09/26/2019 14:23
11 | 1 | 09/26/2019 14:23
11 | 2 | 09/26/2019 14:24
11 | 3 | 09/26/2019 14:24
3 | 1 | 09/26/2019 14:24