我想在TSQL中计算列内容的依赖性,另一列的内容应该在分子或分母中
我有一张包含以下内容的表格:
+------------+----------+----+-------------------------+ | machine-nr | duration | ID | timestamp | +------------+----------+----+-------------------------+ | 1108 | 47 | 11 | 2017-02-11 00:08:15.000 | | 1112 | 195 | 2 | 2017-02-11 00:13:13.000 | | 1108 | 339 | 7 | 2017-02-11 00:13:54.000 | | 1108 | 19 | 2 | 2017-02-11 00:13:54.000 | | 1112 | 20 | 11 | 2017-02-11 00:13:33.000 | +------------+----------+----+-------------------------+
现在我想做这种计算 ID 11的每个持续时间都应该在被除数中,并且ID为11,2和7的所有持续时间的总和应该在除数中。 这样的事情(我知道它不会那样工作):
SUM(duration if ID = 11) / SUM(duration if ID =11) + SUM(duration if ID = 2) + SUM(Duration if ID = 7)
group by machine-nr
我希望你知道我的意思。
答案 0 :(得分:0)
select machine_nr,
sum(case when id = 11 then duration end)
/ sum(case when id in (11,2,7) then duration end) as end_calc
from MyTable
group by machine_nr