2017-11-30 10 views
-1

MyTable에 세 개의 열이 있으며 각 그룹별로 합계의 %를 계산해야합니다.그룹 별 합계의 합계

코드 : 각 날짜가 각 행에 대해 다른 클래스와 각 라인에 대한 응용 프로그램을 총 4 번 나타납니다

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

.

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);' 

내가 필요하기위한 전략에 따라 응용 프로그램의 비율을 계산하는 열을 추가하는 것입니다 : 샘플 데이터 세트에 대한

https://i.stack.imgur.com/mfPai.png

코드 :

표는 다음과 같이 보입니다 각 appvintage.

이 방법이 있습니까? 미리 감사드립니다!

답변

2

당신은

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

가 잘 작동 (2008+ 가정 SQL 서버)이 작업을 수행하기 위해 윈도우 기능을 사용할 수 있습니다! 감사 –