Как мне создать скрипт, который присваивает значение новому столбцу в MySQL? - PullRequest
1 голос
/ 10 апреля 2019

У меня есть возможности, которые перечислены более одного раза, и мне нужно создать столбец, который обеспечивает его учет только один раз. Вот наглядный пример того, что я пытаюсь выполнить:

Пример данных:

enter image description here

И что я хочу сделать, это назначить значение TCV в новом столбце при первом обнаружении и 0 для каждого последующего. Таким образом, возможность учитывается только один раз, при этом все еще отображаются все строки влияния.

Ожидаемый результат:

enter image description here

1 Ответ

1 голос
/ 10 апреля 2019

В 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
...