我有不止一次列出的机会,我需要创建一列以确保仅将其计算一次。这是我要完成的视觉示例:
样本数据:
我的意思是,第一次遇到新列时,将TCV值分配给新列,之后每次将其分配为0。因此,机会只计算一次,而仍然显示所有有影响力的行。
预期结果:
答案 0 :(得分:1)
在MySQL 8.x中,您可以使用ROW_NUMBER()
窗口函数,如下所示:
select
opportunity,
influences,
total_contract_value,
case
when row_number() over(partition by opportunity order by influences) = 1
then total_contract_value
else 0
end as tcv_counted_once
from my_table