Как добавить строку в SQL, если значение из одного столбца больше, чем значение в другом столбце - PullRequest
0 голосов
/ 23 апреля 2019

Примером моего набора данных будет:

ZoneA: 0-100

ZoneB: 100-200

Name  SubName  startValueA  endValueA  startValueB  endValueB
A     X        0            25         0            100
A     X        25           35         0            100 
A     X        35           80         0            100 
A     X        80           95         0            100 
A     X        95           120        0            100 
A     Y        120          145        100          200 
A     Y        145          160        100          200 
A     Y        160          175        100          200 
A     Y        175          190        100          200 
A     Y        190          200        100          200 

По сути, я хочу, чтобы это:

Name  SubName  startValueA  endValueA  startValueB  endValueB  Percent
A     X        0            25         0            100        1
A     X        25           35         0            100        1
A     X        35           80         0            100        1    
A     X        80           95         0            100        1    
A     X        95           100        0            100        .2   <--- (100-95)/(120-95)
A     X        100          120        100          200        .8   <--- (120-100)/(120-95)
A     Y        120          145        100          200        1    
A     Y        145          160        100          200        1 
A     Y        160          175        100          200        1
A     Y        175          190        100          200        1
A     Y        190          200        100          200        1

Таким образом, добавляется строка, где ValueA пересекает ValueB, а затем вычисляется результирующий процент каждого.В основном я пытаюсь выяснить, сколько valueA принадлежит в каждой зоне, как определено valueB.Я сделал первый ряд довольно просто с чем-то вроде:

case 
   when endValueA <= endValueB then 1 
   else ((endValueB - startValueA)/(endValueA - startValueA))

Я просто не уверен, как добавить дополнительный ряд с обратным процентом.

Спасибозаранее за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...