문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/131115
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 코드
[방법 1: 야매]
select *
from FOOD_PRODUCT p
order by p.price desc
limit 1;
[방법 2: 정석]
select *
from FOOD_PRODUCT p1
where p1.price = (
select max(p2.price)
from FOOD_PRODUCT p2
)
2. 분석
- 특정 attribute가 최댓값이 되는 행을 조회하는 방법은 크게 두가지가 있다.
- 1. 해당 열을 내림차순 정렬 후 최초 1행만 반환
- 2. 서브쿼리를 이용해 해당 열의 최댓값을 찾고 그 최댓값과 같은 값을 갖는 행을 반환.
- 간단한 최댓값 찾기라면 1번 방법이 더 쉽고 속도도 빠르고 효율적이다.
- 조건이 복잡해지면 서브쿼리를 이용한 2번 방법만 가능한 경우가 더 일반적이다.
'코딩테스트 > 프로그래머스 SQL' 카테고리의 다른 글
| [프로그래머스 / MySQL] 연도별 대장균 크기의 편차 구하기 (Lv2 - 셀프조인, 윈도우 함수) (0) | 2026.03.01 |
|---|---|
| [프로그래머스 / MySQL] 서울에 위치한 식당 목록 출력하기 (Lv4 - LIKE) (0) | 2026.02.04 |
| [프로그래머스 / MySQL] 3월에 태어난 여성 회원 목록 출력하기 (Lv2 - IS NOT NULL) (1) | 2026.01.09 |
| [프로그래머스 / MySQL] 강원도에 위치한 생산공장 목록 출력하기 (Lv1 - SELECT, LIKE) (0) | 2026.01.09 |
| [프로그래머스 / MySQL] 흉부외과 또는 일반외과 의사 목록 출력하기 (Lv1 - SELECT) (0) | 2026.01.08 |