소계 및 합계 쿼리 질문드려요.. 0 5 1,137

by 마이닝 [MySQL] [2019.01.16 09:34:13]


안녕하세요.. MYSQL 사용해서 쿼리 소계나타내는 작업중이에요.
아래와 같은 쿼리로 밑에 테이블과같은 결과가 나오는데..
크게는 SIDO_NAME 기준으로 SCOUNT과 INCREASE 의 합계가 필요해요.
합계라는 새로운 로우가 생기면서 말이죠..

with rollup 으로 작업해보고있지만 진도가 나가지않아 질문올려둡니다.. ; 쿼리의 그룹바이 기준이 SITE_ID, VERSION 두개인데
이두개가 기본키다보니 합계를내도 원데이터와 똑같은 만 나오네요.. 어떻게 해야할까요..

SELECT SIDO_NAME, SITE_NAME, SITE_ID, VERSION, SCOUNT, (SMISS-SMISS_7) INCREASE
      FROM( 
        SELECT *
        FROM WL_DEVICE_CONSOLIDATE 
        WHERE CRT_DT LIKE '2019-01-15%'
        ORDER BY CRT_DT DESC 
      ) AS a 
 GROUP BY SITE_ID, VERSION
SIDO_NAME SITE_NAME SITE_ID VERSION SCOUNT INCREASE
광역시 광주광역시(2015) 2900000000 ver5미만 248 2
광역시 광주광역시(2016) 2910000000 ver5미만 2316 13
광역시 광주광역시(2016) 2910000000 ver8.A 2316 13
광역시 광주_정비 2910000001 ver5미만 2260 365
광역시 광주_정비 2910000001 ver8.A 2260 365
광역시 광주광역시(계약171020_준공171130_AS만료191129) 2910000003 ver7이상 2096 32
광역시 광주광역시(계약180614_준공180810_AS만료200809) 2920010451 ver7이상 903 4
광역시 울산광역시(계약140327_) 3114010100 구버전 1620 7
경기도 하남시(계약170629_준공170920_AS만료190919) 4145010200 ver7이상 684 9
강원도 동해시(계약140401_) 4217010100 구버전 548 28
충청북도 옥천군 4373025032 ver8 82 0
충청북도 영동군(계약180426_준공180528_AS만료200527) 4374025031 ver7이상 351 9
충청북도 영동군(계약181101_준공_AS만료) 4374025034 ver8 460 2
by 마농 [2019.01.16 10:06:13]

원하시는 결과표를 올려 주세요.
그리고 site_id 하나에 version 이 2개인 것의 자료는 맞는건가요?
값이 똑같은게 이상하네요.
site_id 에 대한 scount, increase 값이 version 이 다른데도 동일하네요?
2910000000, ver5미만, 2316,  13
2910000000, ver8.A  , 2316,  13
2910000001, ver5미만, 2260, 365
2910000001, ver8.A  , 2260, 365


by 마이닝 [2019.01.16 10:14:07]

 

음.. 최종결과는 이런식으로 레벨별로 구분하려고해요.. 

엇!!!! ? 어....음.. 값이 똑같은건 ... 확인해봐야겠네요....;;;;

LEVEL SIDO_NAME SITE_NAME SITE_ID VERSION SCOUNT INCREASE
3 광역시 광주광역시(2015) 2900000000 ver5미만 248 2
3 광역시 광주광역시(2016) 2910000000 ver5미만 2316 13
3 광역시 광주광역시(2016) 2910000000 ver8.A 2316 13
2 광역시 광주광역시(2016)     4880 28
3 광역시 광주_정비 2910000001 ver5미만 2260 365
3 광역시 광주_정비 2910000001 ver8.A 2260 365
2 광역시 광주_정비     4520 730
1 광역시       9400 758

by 마농 [2019.01.16 10:20:18]

"광주광역시(2015)" 와 "광주광역시(2016)" 이 합쳐지는거 맞나요? ==> 따로 나와야 할 것 같구요.
"2910000000" 에 대한 "ver5미만" 과 "ver8.A" 의 scount, increase 가 동일한거는
원본 쿼리가 틀린게 아닌가 의심되는 부분이네요.


by 마농 [2019.01.16 11:25:08]

1. 먼저번에 질문 내용중 사이트별 버전은 일자별로 하나 뿐이라고 하셨었는데?
  - 그 제약사항과 다르게 두개의 버전이 조회되고 있네요.
  - 이 부분이 이상한 부분이고.
2. 만약 위 제약사항이 유효하다면?
  - 보여주신 결과의 레벨 2 는 무의미한 자료가 됩니다.
  - 레벨2 나 레벨3 나 동일한 결과이기 때문이죠.
  - 레벨3 1건당 레벨2 1건씩 붙는 꼴이 됩니다.
  - 1건에 대한 소계는 의미가 없습니다.


by 마이닝 [2019.01.16 12:17:09]

맞아요... 아.. 사이트별로 버전이 여러개로 나뉘어요.. 저번에 생각을 잘못한것같네요..ㅠ

원본데이터부터 먼저 수정하고 하겠습니다..  버전별로 카운트가 다르게 나오는게 정답인부분이라..

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