使用 MAX 创建列

Create Column with MAX

我有一个问题,我觉得一个简单的 SQL 查询就可以解决它。 我有一个 table 包含以下示例中的数据,我需要“输出”列。

PID 列有重复项,我不想打扰该列。

我需要的是根据PID计算P_Second

SELECT PID, MAX(P_SECONDS) OUTPUT
from table
GROUP BY PID

如果都一样,那么MAX也一样。如果它们不同,则选择MAX。

您似乎希望每个 p_id 填充一次输出列,并且 p_seconds 首先达到其最大值。 “第一个”由 pry 列确定。

这是一个带有条件逻辑的window函数:

select t.*,
       (case when row_number() over (partition by p_id order by p_seconds desc, pry asc) = 1
             then p_seconds
        end) as output
from t;