使用 group by 更新计数器
Update with counter with group by
我有一个 table T1
看起来像这样
DATUM ID NAME ROW_COUNT
2/14/2021 101 ALEX
2/14/2021 100 SHAUN
2/14/2021 102 SCOTT
2/15/2021 100 SHAUN
2/15/2021 101 ALEX
2/15/2021 102 SCOTT
2/16/2021 100 SHAUN
2/16/2021 101 ALEX
2/16/2021 102 SCOTT
其中有列 datum
、ID
、Name
、Row_Count
我想像这样更新计数器
DATUM ID NAME ROW_COUNT
2/14/2021 101 ALEX 1
2/14/2021 100 SHAUN 1
2/14/2021 102 SCOTT 1
2/15/2021 100 SHAUN 2
2/15/2021 101 ALEX 2
2/15/2021 102 SCOTT 2
2/16/2021 100 SHAUN 3
2/16/2021 101 ALEX 3
2/16/2021 102 SCOTT 3
我这样试过的
UPDATE DAILY_PRODUCTION
SET DOC_ID=DOC_ID+1
GROUP BY DATUM;
但是没有成功,请知道的人。
我建议 不要 进行此更新,而是使用以下 select 和 DENSE_RANK
:
SELECT DATUM, ID, NAME, DENSE_RANK() OVER (ORDER BY DATUM) ROW_COUNT
FROM DAILY_PRODUCTION
ORDER BY DATUM, ID;
不想维护ROW_COUNT
列的原因是它可能是派生数据。因此,随着数据的变化,您可能被迫 运行 多次进行此更新。
我有一个 table T1
看起来像这样
DATUM ID NAME ROW_COUNT
2/14/2021 101 ALEX
2/14/2021 100 SHAUN
2/14/2021 102 SCOTT
2/15/2021 100 SHAUN
2/15/2021 101 ALEX
2/15/2021 102 SCOTT
2/16/2021 100 SHAUN
2/16/2021 101 ALEX
2/16/2021 102 SCOTT
其中有列 datum
、ID
、Name
、Row_Count
我想像这样更新计数器
DATUM ID NAME ROW_COUNT
2/14/2021 101 ALEX 1
2/14/2021 100 SHAUN 1
2/14/2021 102 SCOTT 1
2/15/2021 100 SHAUN 2
2/15/2021 101 ALEX 2
2/15/2021 102 SCOTT 2
2/16/2021 100 SHAUN 3
2/16/2021 101 ALEX 3
2/16/2021 102 SCOTT 3
我这样试过的
UPDATE DAILY_PRODUCTION
SET DOC_ID=DOC_ID+1
GROUP BY DATUM;
但是没有成功,请知道的人。
我建议 不要 进行此更新,而是使用以下 select 和 DENSE_RANK
:
SELECT DATUM, ID, NAME, DENSE_RANK() OVER (ORDER BY DATUM) ROW_COUNT
FROM DAILY_PRODUCTION
ORDER BY DATUM, ID;
不想维护ROW_COUNT
列的原因是它可能是派生数据。因此,随着数据的变化,您可能被迫 运行 多次进行此更新。