메뉴 건너뛰기

조회 수 611 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
우선 아래와 같은 테이블 testbl이 있다고 하자.
+-----+------+------+--------+
| sid | ssid | sort | status |
+-----+------+------+--------+
|   1 | aa   |   23 | b      |
|   2 | aa   |   11 | b      |
|   3 | aa   |   33 | c      |
|   4 | aa   |   32 | d      |
|   5 | bb   |   23 | a      |
|   6 | bb   |   67 | c      |
|   7 | bb   |   34 | a      |
|   8 | bb   |   77 | d      |
|   9 | cc   |   11 | a      |
|  10 | cc   |   22 | a      |
|  11 | cc   |   32 | d      |
|  12 | cc   |   23 | c      |
|  13 | cc   |   32 | b      |
+-----+------+------+--------+

위 테이블에서 ssid 를 group by로 잡은 뒤에 해당 ssid 값의 sort값중 가장 큰값을 가져오려면,
mysql> select ssid, max(sort), status from testbl group by ssid
+------+-----------+--------+
| ssid | max(sort) | status |
+------+-----------+--------+
| aa   |        33 | b      |
| bb   |        77 | a      |
| cc   |        32 | a      |
+------+-----------+--------+
위와 같이 쿼리를 날리면 된다. 하지만 status의 값은 sid 순서로 첫번째의 값을 가져올뿐, max(sort)의 status 값을 가져오는것이 아니다. 

그럼 해당 max(sort) 값의 status 값을 가져오는 방법을 알아보자면,

mysql> select t1.ssid, t1.sort, t1.status 
from testbl as t1, 
(select ssid, max(sort) as max_sort from testbl group by ssid) as t2 
where t1.sort = t2.max_sort and t1.ssid = t2.ssid;
+------+------+--------+
| ssid | sort | status |
+------+------+--------+
| aa   |   33 | c      |
| bb   |   77 | d      |
| cc   |   32 | d      |
| cc   |   32 | b      |
+------+------+--------+

max값의 sid값을 찾아내는 방법도 있지만, ssid와 max(sort)값이 원하는 조건이 되기 때문에 위와 같이 뽑아낼 수 있다.

List of Articles
번호 제목 날짜 조회 수
126 MySQL INSERT 성능 향상 2016.12.22 11587
125 MySql 의 Trigger(트리거) 로 정보 업데이트 file 2016.08.30 10165
124 특정 COLUMN을 제외하고 SELECT/INSERT하는 방법 2017.11.16 8901
123 MySql 윈도우에서 DB dump 백업과 복구하기 file 2016.08.30 8492
122 다양한 단위의 시간차 구하기 2015.12.19 8375
121 MySQL 최적화 방법 설명 2014.02.27 8033
120 MySQL 대용량 DBMS 개선 사례 file 2017.12.28 8026
119 테이블 체크, 백업 2016.12.23 7492
118 MySQL/MariaDB 백업 & 복원 - mysqldump 2015.08.07 7398
117 실수로 삭제한 mysql DB 복구방법 2017.04.12 7333
116 MySql 에서 외래키(FK) 설정하는 방법과 Toad 에서 확인하기 file 2016.08.30 7168
115 MySQL Replication 설정(Master-Slave, Maste 2014.02.27 6792
114 DB의 모든 테이블을 삭제하는 쿼리 2016.08.29 6782
113 컬럼에 포함된 특정문자열을 검색해서 그 문자로 또 다른 테이블검색하기 2016.08.30 6618
112 MySQL 에서 NULL 값 처리 file 2016.08.30 6439
111 MySql 문자열 합치기 2014.02.27 6263
110 dump 를 db에 올릴때 인코딩 문제 2016.12.23 6185
109 필드 변경, 추가, 삭제 2016.12.23 6112
108 MySQL 쿼리 결과 값 세로로 보기 2017.04.12 6071
107 SQL 고급 file 2017.12.22 6062
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved