sql 공백합치기 질문 0 7 1,070

by 한현희 [2016.11.23 14:15:19]


 그림1과 같은 상황을 그림2와 같은 상황으로 쿼리를 만들고싶으면 어떻게 해야할까요 ..???????????

<그림1>

cnt1 cnt2 cnt3
1    
2    
  3  
  4  
    5
    6

 

<그림2>

cnt1 cnt2 cnt3
1 3 5
2 4 6
by 랑에1 [2016.11.23 14:45:23]
WITH T AS (
SELECT '1' cnt1, '' cnt2, '' cnt3 FROM dual UNION ALL 
SELECT '2', '', '' FROM dual UNION ALL 
SELECT '', '3', '' FROM dual UNION ALL 
SELECT '', '4', '' FROM dual UNION ALL 
SELECT '', '', '5' FROM dual UNION ALL 
SELECT '', '', '6' FROM dual 
)
SELECT SUM(cnt1) cnt1, SUM(cnt2) cnt2, SUM(cnt3) cnt3
FROM 
(
  SELECT MOD(NVL(cnt1, 0) + NVL(cnt2, 0) + NVL(cnt3, 0), 2) gr, cnt1, cnt2, cnt3
  FROM T
)
GROUP BY gr
ORDER BY gr desc

 


by 마농 [2016.11.23 15:10:17]

그림1 은 원본이 아닌 1차 가공 결과물일 듯 하네요?

1차 가공 결과물을 또다시 2차 가공하는 방법보다는...

원본으로부터 바로 최종 결과물을 뽑는 방법을 찾는것이 좋을 듯 합니다.

그림1의 SQL 을 올려주세요.


by 한현희 [2016.11.24 09:58:56]

SQL이 특별한건 없구요.  테이블마다 전체 SELECT 해서 건수구하고  질문에 그림2와 같은 형식으로 뽑고 싶은 심정입니다... 조언부탁드립니다!

select count(*) cnt
  from  A

union all
 select count(*)  cnt

   from B

union all

select count(*) cnt

 from C

union all

 select count(*) cnt

     from D

 union all

select count(*) cnt

from E ;


by 마농 [2016.11.24 10:04:13]

특별한게 없다면? 있는 그대로 보여주세요.
제시하신 쿼리로 그림1의 결과가 나올리가 없죠.


by 마농 [2016.11.24 10:19:43]

6개의 서로 다른 테이블에서 각각 카운트를 가져와 2*3 배열로 배치하는 건가요?
 

SELECT (SELECT COUNT(*) FROM a) cnt1
     , (SELECT COUNT(*) FROM c) cnt2
     , (SELECT COUNT(*) FROM e) cnt3
  FROM dual
 UNION ALL
SELECT (SELECT COUNT(*) FROM b) cnt1
     , (SELECT COUNT(*) FROM d) cnt2
     , (SELECT COUNT(*) FROM f) cnt3
  FROM dual
;

 


by 한현희 [2016.11.24 13:54:05]

네 맞습니다!!


by 한현희 [2016.11.24 13:55:12]

마농님 말대로 제가 올린 쿼리로 1번 그림이 나오지 않았습니다.

3번에 나누어서 나온결과를 그림1번처럼 제가 만든것이고,

그림2번처럼 나오고싶어 질문을 드렸습니다..

 

답변이 된것같습니다 감사합니다!!!!!!!!!!!!!!!!!!!!!!!!!!><

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