database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30627 게시물 읽기
No. 30627
그룹별 정렬문제로 고생하고있습니다.
작성자
이승환(sadpains)
작성일
2013-08-23 11:07
조회수
13,110

 

 

 

 

 

 

조건 1.

그룹별로 image 컬럼에 데이터가 들어있는 사람중 idx 가 가장 높은 1명만 그룹의 제일 상단에 출력

 

 

조건 2.

위의 조건1에 해당하지 않는그룹원은 idx 역순 

 

조건 3.

각 그룹별 3명만 출력

 

 

# 그룹의 순서까지 정렬할 필요는 없습니다.

 

원하는 output

 

 

 

고수님의 가르침을 부탁드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

CREATE TABLE test1
AS
SELECT 1 idx, 1 grp, '김태희' name, NULL image
UNION ALL SELECT  2, 1, '송혜교', NULL
UNION ALL SELECT  3, 1, '전지현', 'jihyun.jpg'
UNION ALL SELECT  4, 2, '한예슬', NULL
UNION ALL SELECT  5, 2, '아이유', 'iu.jpg'
UNION ALL SELECT  6, 2, '이민정', 'minjung.jpg'
UNION ALL SELECT  7, 2, '수지'  , 'suzi.jpg'
UNION ALL SELECT  8, 3, '태연'  , NULL
UNION ALL SELECT  9, 3, '윤아'  , 'yoona.jpg'
UNION ALL SELECT 10, 3, '유인나', NULL
UNION ALL SELECT 11, 3, '박보영', NULL
UNION ALL SELECT 12, 4, '신세경', 'kain.jpg'
UNION ALL SELECT 13, 4, '한가인', NULL
UNION ALL SELECT 14, 4, '김사랑', 'sarang.jpg'
;

SELECT a.idx, a.grp, a.name, a.image
  FROM (SELECT a.idx, a.grp, a.name, a.image
             , @rn := CASE WHEN @grp = a.grp THEN @rn + 1 ELSE 1 END rn
             , @grp := a.grp
          FROM (SELECT a.idx, a.grp, a.name, a.image
                  FROM test1 a
                  LEFT OUTER JOIN
                       (SELECT grp, MAX(idx) idx
                          FROM test1
                         WHERE image IS NOT NULL
                         GROUP BY grp
                        ) b
                    ON a.idx = b.idx
                 ORDER BY a.grp
                     , CASE WHEN b.idx IS NOT NULL THEN 1 ELSE 2 END
                     , a.idx DESC
                ) a
        ) a
 WHERE rn <= 3
;

마농(manon94)님이 2013-08-27 14:42에 작성한 댓글입니다.
이 댓글은 2013-08-27 15:09에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
30631group by 질문 드립니다. [1]
사과
2013-09-12
9562
30630MySQL 커뮤니티 사이트 중에 어떤게 좋나요?
송정옥
2013-09-11
10114
30628You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 애러문제 [1]
맘모
2013-08-28
8794
30627그룹별 정렬문제로 고생하고있습니다. [1]
이승환
2013-08-23
13110
30626group by에서 필드값 가져오기 [1]
박기철
2013-08-21
9283
30625다중 mysql port 컨트롤? [1]
백종일
2013-08-16
9561
30624JOIN과 SELECT 한번 더하는거 어떤게 나을까요~~~??? [1]
이득술
2013-08-13
8953
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다