메뉴 건너뛰기

조회 수 594 추천 수 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)값이 원하는 조건이 되기 때문에 위와 같이 뽑아낼 수 있다.

  1. No Image 18Jul
    by
    2018/07/18 Views 1941 

    MySQL 마스터/마스터 replication 에서 AUTO_INCREMENT 문제 해결 방법

  2. No Image 18Jul
    by
    2018/07/18 Views 1675 

    InnoDB 스토리지 엔진에서 테이블의 최대 저장 row 개수

  3. No Image 18Jul
    by
    2018/07/18 Views 1672 

    mysql-bin 로그를 SQL 문으로 변환한는 방법

  4. No Image 18Jul
    by
    2018/07/18 Views 1608 

    MySQL replication SQL 문 실행 오류 해결 방법

  5. No Image 18Jul
    by
    2018/07/18 Views 1558 

    MyISAM 스토리지 엔진에서 테이블의 최대 저장 row 개수

  6. MySQL 에서 테이블에 이미 존재하는 값으로 UPDATE 하는 경우

  7. UPDATE ~ CASE 문을 사용한 조건별 업데이트

  8. Mysql Join 해부(Left, Right, Outer, Inner Join

  9. No Image 05Mar
    by
    2019/03/05 Views 1219 

    mariaDB 백업 쉘 스크립트

  10. 하나의 쿼리로 여러 테이블의 데이터 삭제

  11. No Image 25Nov
    by
    2020/11/25 Views 775 

    [mysql,mariaDB] 컬럼 암호화, 복호화

  12. No Image 26Mar
    by
    2021/03/26 Views 769 

    order by field 와 union, 원하는 대로 정렬 하기

  13. 서로 다른 결과를 한줄로 합쳐서 보여줘야 할 때(GROUP_CONCAT)

  14. No Image 26Mar
    by 조쉬
    2021/03/26 Views 594 

    group by로 뽑아온 값중에 가장큰 값(max)의 상태값을 가져오기

  15. No Image 25Nov
    by
    2020/11/25 Views 360 

    MySQL 암호화 방법

  16. No Image 26Mar
    by
    2021/03/26 Views 315 

    BEGIN, COMMIT, ROLLBACK

  17. 이벤트 스케줄러 등록하기

  18. No Image 26Mar
    by
    2021/03/26 Views 262 

    group by, distinct, count 를 이용한 겹치지 않는것의 개수

  19. MYSQL 트리거 중첩트리거

  20. No Image 26Mar
    by
    2021/03/26 Views 247 

    LIMIT 속도 저하

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved