datetime형 필드인데,
년,월로 그룹으로 묶기위해,
to_char(save_day,'yyyymmdd' ) 이렇게 했엇는데, 속도도 떨어지고해서 수정을 할려고하는데,
to_char를 안쓰고 년,월로 할수가 있나요?
save_day::date 이렇게하면 년월일까지 나와버려서 안되고...
방법이 있나요?
속도도 문제지만,
원래 잘되었던 쿼리가 DB를 새로 설치하고 사용하면서 부터 갑자기 안되는게 생겼어요.
Select Case to_char(save_day,'yyyymm') When '201801' Then 1 Else 0 End As mon1
From table1
Where to_char(save_day,'yyyy')= '2018'
And to_char(save_day,'yyyymmdd' ) BetWeen to_char(save_day,'yyyy')||'0101' And to_char(save_day,'yyyy')||'0221'
Group By to_char(save_day,'yyyymm')
이건데 원래 잘됐었거든요, 근데 갑자기
ERROR: column "table1.save_day" must appear in the GROUP BY clause or be used in an aggregate function
LINE 2: Select Case to_char(save_day,'yyyymm') When '201801' Then 1...
^
********** Error **********
ERROR: column "table1.save_day" must appear in the GROUP BY clause or be used in an aggregate function
SQL state: 42803
Character: 23
이런 에러가 납니다.
버전은 같은 버전으로 생각하고 있었는데, 뭐가 문제일까요 T.T
|