case when 절 문의 드립니다.간단SQL 0 3 1,459

by 임태원 [2016.12.27 11:46:40]


안녕하십니까 질문이 있어 문의 남깁니다.

 

case when 절에 조건이 들어가지나요?

예를 들어. [sales total] is not null  인것 중

           Max([yymmdd] 인것을 찾아서 더하고 아니면 0 라는 식을 구성하고 싶습니다.

또는

Sum([sales total]) OVER ([yymmdd]) 오버 함수를 써서 그날의 총 sum값을 구하고

그중 yymmdd가 가장 큰것만 가져오려고 하는데 방법이 떠오르질 않습니다.. 

 

질문을 써놓고 보니 잘 이해가 가지 않는군요....

 

by 신이만든짝퉁 [2016.12.27 13:58:06]
select *

  from (

select 그룹구분자, yymmdd, sum(sales) over(partition by 그룹구분자) total

    , row_number() over(partition by 그룹구분자 order by yymmdd desc) rn

from 테이블)

where rn = 1;

 

이렇게 해보세요.


by 임태원 [2016.12.27 14:14:04]

네 한번 해보겠습니다!
 Spotfire라는 툴을 사용하는데 테이블을 불러온 상태에서

계산된 컬럼에 그날의 총Sum만 넣으려했습니다.
위와 같이 다시 테이블부터 적재를 해야겠네요..감사합니다.


by 마농 [2016.12.28 13:28:08]

질문이 정리가 잘 안되는데...
지금 원하는 것과 그것을 구현하는 방법이 잘못 매치된 듯 합니다.
조건절은 CASE 가 아닌 WHERE 절을 이용하셔야 할 듯 하고
집계는 분석함수가 아닌 그룹함수를 사용해야 할 듯 하네요.

SELECT SUM(sales_total)
  FROM t
 WHERE yymmdd = (SELECT MAX(yymmdd) FROM t)
;

 

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