tsql根据coolumn的内容计算

时间:2017-03-08 10:25:50

标签: mysql sql tsql

我想在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

我希望你知道我的意思。

1 个答案:

答案 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