如何创建一个脚本,为MySQL中的新列赋值?
我有不止一次列出的机会,我需要创建一个列,确保它只计算一次。以下是我试图完成的一个可视化示例: 样本数据: 我的意思是,第一次遇到TCV时,在一个新列中指定TCV值,之后每次都指定0。因此,机会只计算一次,同时仍然显示所有影响行 预期结果:如何创建一个脚本,为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
在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还在名单上,他们就可以获得积分,但机会不会被计算两次