【发布时间】:2017-07-22 08:16:36
【问题描述】:
我正在努力解决这个问题。我有一张有几十万行的表。每个作业# 大约有 8 行。我需要根据另一列的最高值更新每个作业的一列。
对于作业,cntrl_point 需要设置为 1,其中 oper_num 最大。
UPDATE jobroute
SET cntrl_point = 1
SELECT DISTINCT job, cntrl_point, MAX(oper_num) OVER (PARTITION BY job) MAX_Oper_Num
FROM jobroute
WHERE job not like 'J%' AND suffix = 0
我假设我错误地使用了 OVER PARTITION。我想也许 CURSOR 会更合适,但我不知道该怎么做。
任何帮助将不胜感激。
【问题讨论】:
-
对于相同的
job值,oper_num列中可能有 2 个或更多相同的最大值?
标签: sql sql-server-2008 sql-update