【问题标题】:T-SQL: calculate in dependence of the content of a columnT-SQL:根据列的内容进行计算
【发布时间】:2017-03-08 10:25:50
【问题描述】:

我想在T-SQL中根据一列的内容进行计算,另一列的内容应该在分子或分母中

我有一张表格,内容如下:

+------------+----------+----+-------------------------+  
| 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

我希望你明白我的意思。

【问题讨论】:

  • tsql 不是mysql ...那为什么两个标签?

标签: mysql sql tsql


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2023-02-03
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多