Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建一个脚本,为MySQL中的新列赋值?_Mysql_Compare_Rows - Fatal编程技术网

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

如何创建一个脚本,为MySQL中的新列赋值?,mysql,compare,rows,Mysql,Compare,Rows,我有不止一次列出的机会,我需要创建一个列,确保它只计算一次。以下是我试图完成的一个可视化示例: 样本数据: 我的意思是,第一次遇到TCV时,在一个新列中指定TCV值,之后每次都指定0。因此,机会只计算一次,同时仍然显示所有影响行 预期结果: 在MySQL 8.x中,您可以使用行数()窗口函数,如下所示: select opportunity, influences, total_contract_value, case when row_number() over(pa

我有不止一次列出的机会,我需要创建一个列,确保它只计算一次。以下是我试图完成的一个可视化示例:

样本数据:

我的意思是,第一次遇到TCV时,在一个新列中指定TCV值,之后每次都指定0。因此,机会只计算一次,同时仍然显示所有影响行

预期结果:


在MySQL 8.x中,您可以使用
行数()
窗口函数,如下所示:

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

为什么Sarah得到TCV而不是Mike或Rob?在我的情况下,谁得到TCV并不重要,只要每个机会只分配一次。只要Mike和Rob还在名单上,他们就可以获得积分,但机会不会被计算两次