본문 바로가기
기타 개발

SQL 과제작업 - 데이터기반 처리

by JeongNue 2019. 12. 3.

 

 

 

/*이용건수 합계, 이용금액 합계 열 추가*/
ALTER TABLE [dbo].[중국인카드데이터] ADD 이용건수합계1516 float NOT NULL DEFAULT 0;
ALTER TABLE [dbo].[중국인카드데이터] ADD 이용금액합계1516 float NOT NULL DEFAULT 0; 

/*이용건수와 이용금액 합계데이터 업데이트*/
/*SELECT SUM을 활용해서 중국관광객카드사용데이터에 있는 이용건수 값을 모두 더한다*/
UPDATE [dbo].[중국인카드데이터] SET [이용건수합계1516] = (SELECT SUM([1516이용건수]) FROM [dbo].[중국인카드데이터] WHERE [지역_시]='전체' GROUP BY [지역_시]);
/*SELECT SUM을 활용해서 중국관광객카드사용데이터에 있는 이용금액 값을 모두 더한다*/
UPDATE [dbo].[중국인카드데이터] SET [이용금액합계1516] = (SELECT SUM([1516이용금액]) FROM [dbo].[중국인카드데이터] WHERE [지역_시]='전체' GROUP BY [지역_시])

/*뷰 만들기*/
/*한국뷰는 건당이용금액이 있으므로 해당 자료만 읍면동 합계를 내서 뷰 생성*/
CREATE VIEW [dbo].[읍면동지역별건당카드이용금액(한국뷰)] AS 
	(SELECT [중분류], SUM([건당이용금액]) AS '건당이용금액'
  	FROM [tempdb].[dbo].[한국인카드데이터]
  	GROUP BY [중분류])

/*중국뷰는 건당이용금액이 없으므로 건당이용금액을 만드는 작업부터 해야함*/
/*ROUND함수를 사용하여 14~15년도 건당이용금액과 15~16년도 건당 이용금액*/
/*그리고 14~16년도 전체 건당 이용금액을 만든다*/
CREATE VIEW [dbo].[읍면동지역별건당카드이용금액(중국뷰)] AS 
	SELECT [지역_읍면동], SUM(temp.[1415건당이용금액]) AS '1415건당이용금액', SUM(temp.[1516건당이용금액]) AS '1516건당이용금액',SUM(temp.[건당이용금액]) AS '건당이용금액'
	FROM
	(SELECT 
		[지역_읍면동], 
		ROUND([1415이용금액]/[1415이용건수],0) AS [1415건당이용금액],
		ROUND([1516이용금액]/[1516이용건수],0) AS [1516건당이용금액],
		ROUND(([1415이용금액]+[1516이용금액])/([1415이용건수]+[1516이용건수]),0) AS [건당이용금액]
	FROM [dbo].[중국인카드데이터]) AS temp
	GROUP BY [지역_읍면동]


/*건당이용금액이 한국인보다 중국인이 더 많은 지역을 검색. LEFT JOIN 사용*/
SELECT 
	[중분류], 
	v1.[건당이용금액] as '한국_건당이용금액', 
	[1415건당이용금액] as '중국_1415건당이용금액', 
	[1516건당이용금액] as '중국_1516건당이용금액', 
	v2.[건당이용금액] as '중국_건당이용금액'
FROM [dbo].[읍면동지역별건당카드이용금액(한국뷰)] as v1
LEFT JOIN [dbo].[읍면동지역별건당카드이용금액(중국뷰)] as v2
ON v1.중분류 = v2.지역_읍면동
WHERE v1.건당이용금액 < v2.건당이용금액


/*위 검색한 내용을 뷰로 작성*/
CREATE VIEW [dbo].[건당이용금액_검색결과] AS 
SELECT 
	[중분류], 
	v1.[건당이용금액] as '한국_건당이용금액', 
	/*[1415건당이용금액] as '중국_1415건당이용금액', */
	/*[1516건당이용금액] as '중국_1516건당이용금액', */
	v2.[건당이용금액] as '중국_건당이용금액'
FROM [dbo].[읍면동지역별건당카드이용금액(한국뷰)] as v1
LEFT JOIN [dbo].[읍면동지역별건당카드이용금액(중국뷰)] as v2
ON v1.중분류 = v2.지역_읍면동
WHERE v1.건당이용금액 < v2.건당이용금액

 

지난 결과 공유.

공부에 도움이 되시길 바랍니다!

댓글