상세 컨텐츠

본문 제목

MySQL 최대값, 최소값 하나의 row 추출 (MySQL using MAX() with WHERE clauses)

DB/MySql

by husks 2017. 3. 23. 15:03

본문

반응형

 

아래와 같은 데이터를 갖는 테이블이 있습니다.

select
    *
from
    books;

 

 

price 가 제일 큰 값을 갖는 row를 추출하기 위해서는 아래와 같이 추출할 수 있습니다.

 

1)

select
    *
from
    books
order by price desc
limit 1;

 

 

또 다른 방법도 있습니다.

 

2)

select
    *
from
    books
where
    price = (select max(price) from books);

결과는 같죠 ㅋㅋ

 

저는 1번을 추천합니다.

 

잘은 모르지만 아마도 books 테이블을 1번만 조회하기 때문일것 같고

 

2번은 books 테이블을 2번 조회 할꺼 같기 때문입니다. (books 에서 max값을 구하기 위해 조회 하고 다시 그 조건으로 books를 조회 하기 때문입니다.)

 

그럼 plan을 한번 떠보겠습니다.

 

1) Full Table Scan 을 한번만 하네요.

 

2) Full Table Scan 을 두번 하네요. ㅋㅋ

 

1) 번처럼 정렬후에 상위 1개 추출하세요.

 

제일작은 수는 asc 쓰면 되겠습니다.

반응형

'DB > MySql' 카테고리의 다른 글

mysql sum case group by  (0) 2017.05.23
mysql 인덱스 생성, 조회, 삭제  (0) 2017.03.30
MySQL 컬럼 사이즈 수정  (0) 2017.03.22
mysql 해당월 마지막날 (LAST_DAY 함수)  (0) 2016.11.16
mysql 차집합 (minus)  (0) 2016.10.27

관련글 더보기

댓글 영역