주제 : SQL Server 2005의 OVER절(문제편)
작성일 : 2009.01.22
작성자 : 유일환(ryu1hwan@empal.com)
이전 포스트에서 익혔던 OVER절에 대해서 완전히 익히실수 있도록
몇 개의 문제를 내 드립니다.
<문제01>
- Sale테이블 이용
- RNK, ShopID, ShopSalePrice를 조회
- RNK는 해당 상장의 판매금액에 따른 판매순위(높을수록 1위)
- ShopSalePrice는 해당 상장의 총 판매금액
* 힌트. 지금까지 저는 Sale테이블을 단순 조회하면, OVER절을 사용해서 예제를 보여드렸습니다. 하지만, 문제를 풀기 위해서는 GROUP BY도 사용하셔야 하고, OVER절 안의 ORDER BY에 일반 컬럼이 아닌 집계된 컬럼이 들어 갈 수도 있습니다
<문제-02>
- Sale테이블 이용
- RNK, SaleYMD, ShopID, ShopSalePrice를 조회
- RNK는 동일한 판매일자내의 상장의 판매금액 순위(판매금액이 높으면 1위)
판매일자가 바뀌면 순위는 다시 1위부터 카운트 됩니다.
- ShopSalePrice는 해당 상장의 판매 총금액
<문제-03>
- Sale테이블 이용
- ModelID, ModelSalePrice, ModelSaleRate를 조회
- ModelSalePrice는 해당 모델의 총 판매금액
- ModelSaleRate는 해당 모델의 판매금액이 전체 판매금액 중 차지하는 비중
<문제-04>
- Sale과 Shop테이블을 조인
- ShopGrade, ShopGradeSaleAmt, ShopGradeSaleRT
- ShopGrade는 Shop테이블에 있는 상장등급
- ShopGradeSaleAmt는 해당 상장등급의 판매 총금액
- ShopGradeSaleRT는 해당 상장등급이 전체판매에 대해 차지하는 비중
<문제-05>
- Sale과 Shop테이블을 조인
- ShopID, ShopName, ShopSaleAmt, ShopSaleRT, RNK를 보여준다.
- ShopSaleAmt는 해당 상장의 판매 합계
- ShopSaleRT는 해당 상장의 판매가 전체 판매중에 차지하는 비중
- RNK는 상장의 판매순위(판매금액이 높으면 1위)
<문제-06>
- Sale, Shop테이블을 JOIN
- ShopGrade, ShopID, ShopName, ShopSaleAmt, ShopSaleRT, RNK를 조회
- ShopGrade는 Shop테이블에 있는 상장등급
- ShopSaleAmt는 해당 상점이 판매한 판매합계
- ShopSaleRT는 해당 상점이 해당상점이 속한 등급의 판매합계중 차지하는 비중
- RNK는 상점등급별 상점 판매 순위(즉, 상점등급이 바뀌면, 다시 1위부터 카운트 된다.)
<문제-07>
마지막 문제입니다. 힘을 내서 풀어봅시다.(난이도를 갑자기 올리겠습니다.^^;;;)
- Sale과 Shop테이블을 JOIN
- ShopGrade, ShopID, ShopName, ShopSaleAmt, GradeSaleRT, TTLSaaleRT
- ShopSaleAMT는 해당 상점의 판매금액 집계입니다.
- GradeSaleRT는 해당 상점의 등급의 판매금액 합계에 대해 해당 상점이 차지하는 비중입니다.
- TTLSaleRT는 전체 판매 합계에 대해 해당 상점이 차지하는 비중입니다.
- 등급별 중간 합, 전체 합을 결과에 같이 보여주세요.
이상입니다~~ 열심히 푸셔서 꼭 자신의 것으로 만드시길 기대합니다.^^
[출처] SQL Server 2005의 OVER절(문제편)|작성자 일환
'연구개발 > DBA' 카테고리의 다른 글
SQL Server의 SQL작성 자동화 프로시저 (0) | 2009.06.29 |
---|---|
SQL Login failed because the account is currently locked out (0) | 2009.06.29 |
SQL Server 2005의 OVER절 (0) | 2009.06.29 |
멀티선택 매개변수를 정적 프로시저로 구현하기 (0) | 2009.06.29 |
JOIN 순서에 따른 비용 절감 (0) | 2009.06.29 |