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 30676 게시물 읽기
No. 30676
group by 질문
작성자
강혁(cooldog)
작성일
2013-12-19 17:51ⓒ
2013-12-19 17:51ⓜ
조회수
9,584

group by 와 관련하여 초보적인 질문 드립니다.

하나의 테이블이 있고 구조는 아래와 같습니다.

 

name | part | point

철수 | 국어 | 80

철수 | 수학 | 100

철수 | 영어 | 90

영이 | 국어 | 80

영이 | 수학 | 90

맹구 | 수학 | 10

맹구 | 체육 | 100

 

학생 각자의 최고 점수와 그에 해당하는 과목을 출력하는 쿼리가 궁금합니다. (중복 제거)

기대결과는 아래와 같습니다.

 

철수 | 수학 | 100

영이 | 수학 | 90

맹구 | 체육 | 100

 

고수님의 조언 부탁드립니다. ^^

 

 

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

name | part | point

철수 | 국어 | 70

철수 | 수학 | 100

철수 | 영어 | 100

영이 | 국어 | 80

영이 | 수학 | 90

맹구 | 수학 | 100

맹구 | 체육 | 100

 

이었을때

 

철수 | 수학? 영어? | 100

 

이 부분이 결정되어 있지 않아서 쿼리 못 짠다고 하면... 핑계가 될른지... --_--;;

우욱님이 2013-12-20 17:23에 작성한 댓글입니다. Edit

오라클의 rank 함수를 지원하지 않기 때문에

아래와 같이 변수를 사용해 처리해야 합니다.

SELECT name, part, point
FROM (
 SELECT name, part, point
        ,CASE WHEN @user_name = name
       THEN @rank := @rank +1
       ELSE @RANK := 1
  END rank
  , @user_name := name AS t
 FROM table, (SELECT @user_name := null, @rank := 0 FROM DUAL) t
 ORDER BY name ASC, point DESC
) lst
WHERE rank = 1

박인호(paerae)님이 2013-12-23 16:06에 작성한 댓글입니다.

SELECT b.name,b.part,b.point FROM
  (
      SELECT `name`,MAX(`point`) AS `point` FROM  tbl_name GROUP BY NAME
  ) a
  JOIN
  (
      SELECT `name`,part,`point` FROM  tbl_name
   ) b
ON a.name=b.name AND a.point=b.point;

royster님이 2014-01-10 17:13에 작성한 댓글입니다.
이 댓글은 2014-01-10 17:51에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30679DB 파일을 등록하려면 어떻게 해야 하나여?
정성욱
2013-12-24
9467
30678기간 병합 방법 문의 드립니다
이중희
2013-12-22
9410
30677안녕하세요 mysql에 대해 몇가지 질문을 드릴려고 합니다.
초보개발자
2013-12-19
9434
30676group by 질문 [3]
강혁
2013-12-19
9584
30675MySQL Windows Installer 설치 후 사용...
김선엽
2013-12-18
9136
30674Json String에 대한 파싱
.
2013-12-09
9637
30672결과를 엑셀로 출력시 필드명도 같이 출력할 수 있나요? [1]
이중희
2013-12-04
10208
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다