예제문제 추가 쿼리 질문
203
작성한 질문수 4
안녕하세요 공부하다가 쿼리에 추가해보고 싶은게 생겨서 질문드립니다!
예2: 서브카테코리가 '여성신발'인 상품중 할인가격이 가장 높은 상품의 할인가격 가져오기
이 문제에 정석 답변이라면 MAX(dis_price) 컬럼만 도출될텐데요! 앞에다가 해당 상품명 title을 추가해서 총 두 개의 컬럼이 나오게끔 만들어보려다가 막혀서 질문드립니다.
원래는 99000짜리 하나만 나와야하는데
밑에 쿼리로 하니까 여러개가 나와서요 ㅠㅠ
여러개가 나온 이유는 알거같아요 타이틀을 그룹바이해서 그 그룹별로 제일 높은 가격이 도출된 것 같은데 그건 제가 원하는 답은 아니어서요!
맥스 디스 프라이스를 가진 아이템코드의 타이틀을 어떻게 해야 효과적으로 도출할 수 있나요?
SELECT title, MAX(dis_price) FROM items
JOIN ranking
on items.item_code = ranking.item_code
WHERE sub_category = "여성신발"
group by title;
답변 2
1
안녕하세요. 답변 도우미입니다.
지금 상황에서는 MAX(dis_price)와 함께 해당 가격을 가진 상품의 title을 가져오고 싶으신데, GROUP BY title을 사용하면 각 title별로 최대 할인가격이 나오기 때문에 여러 개의 결과가 나올 수 있습니다. 이 문제를 해결하려면, 다소 난이도가 급격히 올라갈 수 있습니다. 서브쿼리를 사용해야 하기 때문인데요. 서브쿼리가 워낙 다양하게 사용되기도 해서, 난이도가 중상급으로 올라가거든요. 이 부분은 저희도 다음 고급 SQL 과정 강의로 만들 예정이긴 한데요. (생각은 3년전부터 했는데... 곧 오픈하려고 준비하고 있습니다. ㅎㅎ) 가볍게 다음 부분을 참고해보시면 좋을 것 같습니다.
먼저 서브쿼리를 이용하여 '여성신발' 카테고리에서 최대 할인가격을 가진 상품을 찾고, 그 결과를 바탕으로 title을 가져오는 방식으로 접근할 수 있습니다.
예를 들어, 다음과 같은 쿼리를 사용할 수 있습니다:
```sql
SELECT title, dis_price
FROM items
JOIN ranking
ON items.item_code = ranking.item_code
WHERE sub_category = "여성신발"
AND dis_price = (
SELECT MAX(dis_price)
FROM items
JOIN ranking
ON items.item_code = ranking.item_code
WHERE sub_category = "여성신발"
)
```
### 쿼리 설명:
1. 서브쿼리 사용: 서브쿼리에서 '여성신발' 카테고리에서 최대 할인가격 (`MAX(dis_price)`)을 먼저 찾습니다.
2. 메인 쿼리: 메인 쿼리에서는 서브쿼리에서 찾은 최대 할인가격과 동일한 가격을 가진 상품의 title과 dis_price를 가져옵니다.
이렇게 하면 최대 할인가격을 가진 상품의 title과 dis_price가 한 개의 행으로 출력됩니다.
만약 최대 할인가격을 가진 상품이 여러 개 있다면, 그 상품들의 title과 dis_price가 모두 출력됩니다. 단 하나의 결과만 원한다면, LIMIT 1을 추가하여 첫 번째 결과만 출력하도록 할 수도 있습니다:
```sql
SELECT title, dis_price
FROM items
JOIN ranking
ON items.item_code = ranking.item_code
WHERE sub_category = "여성신발"
AND dis_price = (
SELECT MAX(dis_price)
FROM items
JOIN ranking
ON items.item_code = ranking.item_code
WHERE sub_category = "여성신발"
)
LIMIT 1;
```
이렇게 하면 최대 할인가격을 가진 상품 중 하나의 결과만 나오게 됩니다.
감사합니다.
잔재미코딩 드림
실습을 따라하는데 데이터베이스가 보이지 않아요
0
49
1
섹션1 4강부터 강의 실행 안됨 이슈
0
75
1
강의 자료 다운로드 관
0
88
1
강의 영상이 안나와요..
0
78
1
섹션4 화면 자체가 안나와요
0
116
1
강의 화면이 안 보이고, 목소리밖에 안나와요 ;;
0
114
1
데이터 삭제 질문
0
120
1
mysql 설치가 되지 않습니다.
0
1377
3
강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업
0
144
1
지마켓 파일 불러왔는데, 테이블이 생성이 안됩니다
0
117
1
실습 코드 깃허브 업로드
0
143
1
sql_safe_updates 옵션
0
152
1
sql 설치 문제
0
1419
2
서브쿼리를 JOIN으로 바꾸기
0
153
1
중고급 SQL과 실전 데이터 문의
1
154
1
(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..
0
348
1
강의 커리큘럼 질문 있습니다.
0
175
1
강의 자료 이미지가 보이지 않습니다.
0
160
1
Join 구문에서 메인 테이블
0
175
1
강의 화면 출력이 되지 않는 현상
0
208
1
파이썬으로 다루는 MySQL
0
205
1
JOIN 활용 SQL 연습문제
0
177
1
Dbeaver 라는 SQL 쿼리 실행 툴을 써도 될까요?
0
302
1
Sakila PDF 파일 오류
0
186
1





