T-SQL Строки для столбцов и вычислений - PullRequest
1 голос
/ 24 сентября 2019

Нужна небольшая помощь в преобразовании этого:

Source

в ...

Destination

, где

Процент - это просто N / (D - E)

Я прочитал это , это и некоторые другиеposts.
Есть ли более простой способ добавить вычисления в транспонированные столбцы!?

Ответы [ 2 ]

3 голосов
/ 24 сентября 2019

Просто еще один вариант

Select *
      ,Pct = ( IsNull([N],0)+0.0) / NullIf((IsNull([D],0)-IsNull([E],0) ),0)
 From  YourTable A
 Pivot ( sum(Users) for Marker in ([D],[E],[N]) ) pvt

РЕДАКТИРОВАТЬ - с поправкой на NULLS

1 голос
/ 24 сентября 2019

Я бы использовал подзапрос или CTE:

select d.*,
       n * 1.0 / nullif(d - e, 0) as ratio
from (select date,
             sum(case when market = 'D' then users else 0 end) as d,
             sum(case when market = 'E' then users else 0 end) as e,
             sum(case when market = 'N' then users else 0 end) as n
      from t
      group by date
     ) d;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...