로우값 합치기 문의드립니다. 0 5 588

by 아따따뚜루 [Oracle기초] [SQL Query] [Select] [2018.07.17 16:55:54]


a.png (6,511Bytes)

안녕하세요. 오라클 db에 대해 배워가는 개발자 신입입니다.

밑은 원소스 구요

select substr(a.trim_cd,0,7), b.carname2name, sum(a.read_count), round(avg(a.price_sale),0)
from ajs_ucar a, ajs_trim b
where a.trim_cd = b.trim_cd
and REG_DT  >= to_date('20180601000000', 'YYYYMMDDHH24MISS')
and REG_DT < to_date('20180701000000','YYYYMMDDHH24MISS')
and a.MILEAGE < 60000
group by substr(a.trim_cd,0,7), b.carname2name;

질문좀 드리려합니다. 밑에 캡처 이미지는 쿼리 결과의 일부분인데

substr과 null값이 따로 나오는 부분이 있습니다.

substr의 sum값을 하나로 합치고 싶은데 검색해봐도 도무지 방법을 모르겠습니다.

알려주심 감사하겠습니다.

 

오라클DB너무 어렵네요.

혹시 새내기에게 입문서로 추천할만한 책있으시면 추천도 부탁드립니다. 감사합니다.

by 우리집아찌 [2018.07.17 17:23:41]

원하시는 결과와 원본 샘플을 보여주세요.

 

 


by 아따따뚜루 [2018.07.17 17:26:55]

원본 샘플쿼리는 위에 있는 쿼리가 다입니다.

캡처 이미지의 CARNAME2NAME이 '익스플로러'라는 문자열로 합쳐지고 SUM값이 합쳐졌음합니다. 1317+1102=2419


by 우리집아찌 [2018.07.17 17:40:11]
-- 원하시는 결과물을 안주셔서 맘대로 짰습니다.

WITH T (COL1 , COL2, COL3 , COL4 ) AS (
SELECT 'FO14001' , '익스플로러' , 1317 , 32570833 FROM DUAL UNION ALL
SELECT 'FO14001' , NULL , 1102 , 38360000 FROM DUAL 
)

SELECT COL1, MAX(COL2) , SUM(COL3) COL3 , SUM(COL4) COL4
  FROM T 
 GROUP BY COL1

 


by 마농 [2018.07.17 17:46:04]
SELECT SUBSTR(a.trim_cd, 1, 7)     AS trim_cd_7
     , MIN(b.carname2name)         AS min_carname2name
--     , LISTAGG(b.carname2name, ',') WITHIN GROUP (ORDER BY a.trim_cd) AS list_carname2name
     , SUM(a.read_count)           AS sum_read_count
     , ROUND(AVG(a.price_sale), 0) AS avg_price_sale
  FROM ajs_ucar a
     , ajs_trim b
 WHERE a.trim_cd  = b.trim_cd
   AND a.reg_dt  >= TO_DATE('20180601', 'yyyymmdd')
   AND a.reg_dt  <  TO_DATE('20180701', 'yyyymmdd')
   AND a.mileage <  60000
 GROUP BY SUBSTR(a.trim_cd, 1, 7)
;

 


by 아따따뚜루 [2018.07.17 17:46:46]

감사합니다. 참고하겠습니다.

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