sql server 쿼리 질문 (동일 사이즈 측정) 0 1 844

by 힘내라김대리 [SQLServer] mssql query sql server [2021.05.22 15:28:30]


쿼리 질문이 있습니다.

 

프로젝트 중인데,,, 어떻게 개발해야할지 제 머리로는...

 

우선 설명을 드리자면, 신발 사이즈가 270 이라고 한다면, 

 

사이즈에서 +5 / -5를 각각 더한 사이즈를 구매하면(265 사이즈/275 사이즈) 270과 같은 사이즈로 보고 있습니다. 

 

주문에 대한 데이터가 아래와 같이 있다면

 

<주문이력> - AS-IS

order_no seq order_date member_id product_no size
100000001 1 2021-05-01 member1 신발1 270
100000001 2 2021-05-01 member1 신발2 265
100000002 1 2021-05-05 member1 신발2 280
100000003 1 2021-05-10 member1 신발3 270

 

<상품>

seq product_no size
1 신발1 270
2 신발2 265
3 신발2 280
4 신발3 170

 

<주문이력> - To-Be

order_no seq order_date member_id product_no size same_size_rate
100000001 1 2021-05-01 member1 신발1 270 75%
100000001 2 2021-05-01 member1 신발2 265 75%
100000002 1 2021-05-05 member1 신발2 280 0%
100000003 1 2021-05-10 member1 신발3 270 75%

 

이렇게 비율이 나와야 할 것 같은데...

 

쿼리로 작성하려니...어떻게 해야할지 고민이네요

by 뉴비디비 [2021.05.22 22:37:12]
WITH tmpT ( product_no , [size] ) as (
    SELECT '신발1', 270 UNION ALL
    SELECT '신발2', 265 UNION ALL
    SELECT '신발2', 280 UNION ALL
    SELECT '신발3', 270 
)
SELECT
    product_no , [size]
    , CAST(CASE 
			WHEN [size] BETWEEN 270-5 AND 270+5 THEN
				SUM( IIF( [size] BETWEEN 270-5 AND 270+5 , 1 , 0 ) ) OVER() *100 /  COUNT(1) OVER()
			ELSE 0 
		  END AS VARCHAR )+'%' same_size_rate
FROM tmpT

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입