【问题标题】:SQL Query to Get Standard Deviation of Grouped Totals获取分组总计的标准差的 SQL 查询
【发布时间】:2019-01-04 22:20:30
【问题描述】:

我一直在尝试找到一个 SQL 查询,该查询首先按员工对总收入进行分组和汇总,如下所示:

**SELECT Employee_Name, 
         SUM(Total_Revenue)
    FROM TABLE table_Name
GROUP BY Employee_Name**

然后我还希望查询能够找到聚合组数据的标准差。下面是这样的:

**SELECT Rep_Name, 
         STDEV(Total_Revenue)
    FROM  Sales
Group By Rep_Name**

到目前为止,所有尝试都没有奏效,我真的可以在 SQL 方面经验更丰富的人的指导下完成。我已经尝试了上述两个查询的无限组合,但没有什么接近的。

我已经设法获得了每个员工总收入的个人标准偏差,并且我还设法获得了基于每笔销售总收入的标准偏差。

我本质上想比较每个员工的总收入,并建立每个员工总收入的标准差。

以下是我使用 excel 公式生成的内容,它最终是我希望 SQL 输出生成的内容,以便我可以运行进一步的分析。

   ID   Total   Average   Standard Deviation 
    1   3100.00 1787.92   800.53
    2   3102.30 1787.92   800.53
    3   2363.04 1787.92   800.53
    4   2000.00 1787.92   800.53
    5   1749.87 1787.92   800.53
    6   1641.43 1787.92   800.53
    7   1387.77 1787.92   800.53
    8   1299.25 1787.92   800.53
    9   1283.61 1787.92   800.53
    10  1203.11 1787.92   800.53
    11  536.75  1787.92   800.53

热烈欢迎任何帮助。

一切顺利, :)

【问题讨论】:

  • 能否请您发布表格结构?

标签: sql sql-server grouping aggregate-functions


【解决方案1】:

我想你想要一个窗口函数:

SELECT Rep_Name,
       AVG(SUM(Total_Revenue)) OVER () as avg_rep, 
       STDEV(SUM(Total_Revenue)) OVER () as stdev_rep
FROM Sales
GROUP BY Rep_Name;

这会进行聚合,然后计算总和的标准差。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多