logweft.

SQL-L4-008 / 고급 윈도

체인 윈도 정의

고급

문제

기본 윈도 w와 이를 잇는 all_rows를 정의해 staff의 id, 부서 점수 총합, 부서 평균 점수를 id순으로 조회하세요.

결과의 열 순서와 행 순서를 지키세요. 별칭 이름은 자유지만 열 개수와 값은 일치해야 합니다. SQLite 기준입니다.

입출력 예시

테이블과 예제 데이터
CREATE TABLE staff (id INTEGER, name TEXT, dept TEXT, score INTEGER);
INSERT INTO staff VALUES (1,'a','X',80),(2,'b','X',90),(3,'c','Y',70),(4,'d','Y',70),(5,'e','X',90);
첫 데이터의 기대 결과 · 행 순서대로
[
  [
    1,
    260,
    86.66666666666667
  ],
  [
    2,
    260,
    86.66666666666667
  ],
  [
    3,
    140,
    70
  ],
  [
    4,
    140,
    70
  ],
  [
    5,
    260,
    86.66666666666667
  ]
]

서로 다른 준비 데이터 2개에서 확인해요.

힌트

파티션 정의 w에 전체 행 프레임을 더한 파생 윈도를 만드세요.

해설·정답 보기

두 집계가 같은 파티션을 재사용합니다. 자동 판정은 결과를 비교하므로 WINDOW 사용 여부는 해설과 비교합니다.

SELECT id,SUM(score) OVER all_rows,AVG(score) OVER all_rows FROM staff WINDOW w AS(PARTITION BY dept), all_rows AS(w ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) ORDER BY id;
모르는 문법은 코드 사전에서 ↗
query.sql결과 비교

코드는 이 브라우저에 자동 저장돼요.

풀이 결과

코드를 작성하고 채점하기를 눌러보세요.

    학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.

    어떤 기록을 찾으세요?

    키워드를 입력하면 기록을 찾아드려요.