【问题标题】:% of Total by group按组占总数的百分比
【发布时间】:2017-11-30 20:32:24
【问题描述】:

我在 MyTable 中有三列,我需要计算每组占总数的百分比。

代码:

SELECT AppVintage, Strategy, Apps FROM mytable GROUP BY AppVintage,Strategy,Apps

每个日期出现 4 次,每行有不同的类别,然后每行总共有申请。

表格看起来像这样:

示例数据集的代码:

CREATE TABLE mytable(
AppVintage VARCHAR(6) NOT NULL PRIMARY KEY
,Strategy   VARCHAR(28) NOT NULL
,Apps       INTEGER  NOT NULL
);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Nov16','300',10197);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Nov-16','ORIG',29023);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Nov-16','400',7219);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Nov-16','500',9452);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Dec-16','300',12517);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Dec-16','ORIG',37762);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Dec-16','400',8992);
INSERT INTO mytable(AppVintage,Strategy,Apps) VALUES ('Dec-16','500',11229);'

我需要添加一个列来计算每个应用程序的每个策略的应用程序百分比。

有没有办法做到这一点?提前致谢!

【问题讨论】:

    标签: sql-server percentage subtotal


    【解决方案1】:

    您可以使用窗口函数来执行此操作(假设 SQL Server 2008+)

    SELECT
        AppVintage,
        Strategy,
        Apps,
        Apps/SUM(Apps) OVER (PARTITION BY AppVintage) as Percent_Apps
    FROM myTable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 2020-09-05
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      相关资源
      最近更新 更多