Group by 사용 중 궁금 궁금~~~ 0 2 866

by OraTaDo [2016.12.25 16:28:26]


with employee as
    (
     select '2016001' id from dual union all
     select '2016002' id from dual union all
     select '2017003' id from dual union all
     select '2017004' id from dual union all
     select '2018005' id from dual union all
     select '2018006' id from dual
    )
select
      substr(id,1,4) yyyy
from employee
group by substr(id,1,4)

위 쿼리에서

substr(id,1,4)  두 번씩이나 사용해야 됩니다.

한 번만 사용하고 싶습니다. 더 좋은 방법이 있을까요?^^

 

by jkson [2016.12.26 08:25:03]

GROUP BY 뒤로는 GROUP 을 지어야 하니까 있어야 되고 SELECT 절에서는 표시해야 되어서 써주는 건데 왜 하나만 사용하고 싶으신 거죠?

select
      distinct substr(id,1,4) yyyy
from employee

이렇게 하셔도 되긴하지만 추천하진 않습니다.


by 마농 [2016.12.26 09:11:41]

달랑 년도만 조회하는 거라면?
  - Count 나 Sum 등의 집계를 할때나 Group By 가 필요하죠.
  - 집계 없이 중복제거만 한다면? Distinct 사용하면 됩니다.
그룹바이를 하는게 맞다면?
  - 즉 집계가 필요한 경우라면?
  - 인라인뷰를 이용할 수 있습니다.
 

SELECT yyyy
  FROM (SELECT SUBSTR(id,1,4) yyyy FROM employee)
 GROUP BY yyyy
;

 

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