안뿌꾸
130
2019-07-02 00:57:15
4
223

년도별 group by



with 문과 dual를 이용해 만든 더미 테이블 값인데 

밑에 select 컬럼명 ... min(start_date) start_date, max(end_date) end_date

from table

group by 컬럼명 ... substr(start_date,1,4) 

ordert by start_date 로 그림 밑에 결과와 똑같이 뜨게 해놓았지만,

substr을 사용하지 않고 group by로 뜨길 원하시더라구용 암만 생각해도 다른 방법은 안떠오르는데

다른 방법의 쿼리작성이 있을가여?

0
0
  • 답변 4

  • 르매
    560
    2019-07-02 10:14:10

    start_date의 year 부분을 물리적인 별도 컬럼으로 가지고 있지 않는 이상 불가능하겠죠.

    0
  • 유리세계
    2k
    2019-07-02 13:06:40

    오라클인것 같은데..

    SELECT A.GROUP_YEAR
    	, SUM(SOMEDATA1) AS SUM_SOMEDATA
    	, AVG(SOMEDATA2) AS AVG_SOMEDATA
    FROM
    (
    SELECT TO_CHAR(TO_DATE(START_DATE), 'YYYY') AS GROUP_YEAR
      , SOMEDATA1
      , SOMEDATA2
    FROM TABLE
    ) A
    GROUP BY GROUP_YEAR

    요런식이요?

    0
  • 안뿌꾸
    130
    2019-07-02 14:26:40

    sum 하고 avg 는 어떤 값인가용 ? 

    0
  • 유리세계
    2k
    2019-07-02 17:55:14

    안뿌꾸

    그냥 예시에요

    sum은 더하는 함수고 avg는 평균내는 함수죠

    년도별로 그룹바이하게 되면 다른 로우들이 합쳐질거잖아요? max를 하던 ...

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.