如何创建一个为MySQL中的新列分配值的脚本?

时间:2019-04-10 19:37:31

标签: mysql compare rows

我有不止一次列出的机会,我需要创建一列以确保仅将其计算一次。这是我要完成的视觉示例:

样本数据:

enter image description here

我的意思是,第一次遇到新列时,将TCV值分配给新列,之后每次将其分配为0。因此,机会只计算一次,而仍然显示所有有影响力的行。

预期结果:

enter image description here

1 个答案:

答案 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