쿼리 질문입니다.

쿼리 질문입니다.

QA

쿼리 질문입니다.

본문

테이블의 데이터 중 연도와 분기를 가져오는 쿼리문을 작성 중입니다.


현재

 year

 quarter

 2017

 3


의 데이터만 있는 상황입니다


 year

quarter 

2017 

2017 

2017 

2017 



처럼 쿼리문을 작성하고 싶습니다.

어떤 방법이 있을까요? 도움 부탁드립니다.

DB는 mysql입니다.

이 질문에 댓글 쓰기 :

답변 3

베르만님께서 주신 답변을 조금만 응용하시면 될텐데요

현재의 쿼리는 데이터량이 많아지면 속도 이슈가 발생할 겁니다.


해서 개선하셨으면 하는 부분이 해당 분기에 값이 없으면

년도, 분기값은 해당 년도 + 분기값, 그외는 빈값으로 INSERT 해 놓으면

지금처럼 골머리 썩지 않아도 되고

속도도 고민도 덜 하셔도 될것 같습니다만...


SELECT 
    t.id, t.year, t.quarter
FROM
    (
    SELECT  id, year, 1 quarter FROM 테이블 UNION ALL 
    SELECT  id, year, 2 quarter FROM 테이블 UNION ALL 
    SELECT  id, year, 3 quarter FROM 테이블 UNION ALL 
    SELECT  id, year, 4 quarter FROM 테이블 
    ) AS t
WHERE 
    t.id = '아이디'
GROUP BY 
        t.year, t.quarter 
ORDER BY 
    t.year DESC
;

단순하게 아래처럼 가능합니다.



SELECT 2017 year, 1 quarter FROM DUAL UNION ALL 
SELECT 2017 year, 2 quarter FROM DUAL UNION ALL 
SELECT 2017 year, 3 quarter FROM DUAL UNION ALL 
SELECT 2017 year, 4 quarter FROM DUAL
;



SELECT 
    a.year, b.quarter 
FROM 
    (SELECT DISTINCT year FROM 테이블 WHERE id = '아이디') a 
    JOIN 
    (
    SELECT 1 quarter FROM DUAL UNION ALL 
    SELECT 2 quarter FROM DUAL UNION ALL 
    SELECT 3 quarter FROM DUAL UNION ALL 
    SELECT 4 quarter FROM DUAL 
    ) b 
ORDER BY 
    a.year DESC, b.quarter ASC 
;
답변을 작성하시기 전에 로그인 해주세요.
전체 123,917 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT