【问题标题】:TSQL Average Column By Distinct Entries In Another Column另一列中不同条目的 TSQL 平均列
【发布时间】:2010-07-13 14:30:54
【问题描述】:

我从一个看起来像这样的表开始...

+--------------+ |进程名 |结束时间 | +--------------+ |一个 | 04:00:00.000 | |乙| 04:01:00.000 | | C | 04:03:00.000 | |一个 | 04:06:00.000 | |乙| 04:10:00.000 | | ... | ... |

运行查询以生成 RunTime 列,使其看起来像这样...

+--------------+--------------+ |进程名 |结束时间 |运行时 | +--------------+--------------+ |一个 | 04:00:00.000 |空 | |乙| 04:01:00.000 | 00:01:00.000 | | C | 04:03:00.000 | 00:02:00.000 | |一个 | 04:06:00.000 | 00:03:00.000 | |乙| 04:10:00.000 | 00:04:00.000 | | ... | ... | ... |

并希望对 procName 列中每个不同条目的 RunTime 列进行平均,如下所示:

+--------------+ |进程名 |平均运行时间 | +--------------+ |一个 | 00:03:00.000 | |乙| 00:02:30.000 | | C | 00:02:00.000 | | ... | ... |

我该怎么做呢?您可以忽略 table1->table2 步骤,我只是将它包含在一些背景信息中来描述我的问题。

基本上,如何根据 procName 列中的不同条目来平均 RunTime 列中的数据?

谢谢。

【问题讨论】:

    标签: sql tsql distinct average


    【解决方案1】:

    以下内容对您有用吗?

    SELECT procName, AVG(RunTime)
    FROM table
    GROUP BY procName 
    

    然而,AVG 将忽略您的 NULL 条目。

    【讨论】:

    • 确实如此,但是它将从中选择的表是根据第一个表中的 TimeEnded 值动态生成的——从某种意义上说,它不是“独立的”。如果我在查询上运行上述查询以生成我的 procName/RunTime 表,会不会效率低下?
    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2022-12-02
    相关资源
    最近更新 更多