최고값, 최고값구하기 0 4 607

by 공부하자 [MySQL] [2019.05.09 17:58:40]


안녕하세요. 쿼리구성중 궁금한 사항이 있어 조언을 구하고자합니다.

 

SELECT wm.idx
     , wm.prdcode
     , wm.region
     , wm.leisureCode
     , wm.membership_name
     , wm.today_price
     , ws.hp
     , ws.lp
FROM membership wm
LEFT OUTER JOIN (
     SELECT  region
          , leisureCode
          , membership_name
          , MAX(today_price) AS hp
          , MIN(today_price) AS lp
       FROM sise
      WHERE membership_name != ''
        AND leisureCode != ''
    GROUP BY region, leisureCode, membership_name
) ws
  ON ws.region = wm.region
 AND ws.leisureCode = wm.leisureCode
 AND ws.membership_name = wm.membership_name
WHERE wm.membership_name != ''
  AND wm.leisureCode != ''

 

위 처럼 쿼리를 구성했는데요.

membership, sise 부분은 1:n 관계입니다.

membership와 sise 공통부분에서 sise의 최고값, 최저값을 뽑아내려고 하는데요

공통부분은 region,leisureCode,membership_name 3개입니다.

쿼리구성이 잘못된부분은 지적부탁드립니다. 감사합니다.

 

 

by 마농 [2019.05.09 18:09:52]

각 테이블의 키가 뭔가요?
원하는 결과가 어떤식으로 안나오나요?


by 공부하자 [2019.05.09 18:24:15]

위의 이미지가 membership이구요

아래이미지가 sise입니다.

실질적으로 membership데이터가 1054개인데요.

몇개씩 차이가 나고 어떨때는 로딩속도 느리고 그럽니다.


by 마농 [2019.05.09 18:56:47]

뭐가 어떻게 안나오는지 구체적으로 제시해 주셔야 합니다.
"몇개씩 차이가 나고" 식의 모호한 표현으론 확인이 안되죠.
PK 도 idx 1개 컬럼 뿐이네요. 이런 인조식별자 말고 실질식별자를 알아야 할 것 같은데요?
위 3개 컬럼이 식별자 역할 또는 조인키 역할을 한다고 했을 때
1:m 의 관계를 Group By 를 통해 1:1 의 관계로 만들었기 때문에 문제가 없을 듯 한데요?
뭐가 문제일까요? 구체적으로 문제점을 제시해 주셔야 합니다.
필요하다면 원본 대비 결과표로 해서 왜 수치가 다른지 명확하게 보여주셔야 합니다.


by 호야별리 [2019.05.09 19:08:03]

마농님 말씀처럼 쿼리구문에는 큰 문제없어보이는데요.sise 데이터가 많아서 로딩속도가 느려지는걸로 인식하고 있는것은 아닌지요...^^ 지나가던 과객이 몇글자 끄적였습니당

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