group by 를 이용한 학생들 과목 총점, 평점 만들기 예제

학생들 과목 총점, 평점 만들기 예제

create table subtable(
name varchar(30),
subject char(4),
point int);

insert into subtable values('홍길동','수학',90);
insert into subtable values('홍길동','영어',60);
insert into subtable values('홍길동','국어',80);
insert into subtable values('김철수','수학',100);
insert into subtable values('김철수','영어',80);
insert into subtable values('김철수','국어',50);
insert into subtable values('김영희','수학',100);
insert into subtable values('김영희','영어',100);
insert into subtable values('김영희','국어',100);


mysql> select * from subtable;
+--------+---------+-------+
| name   | subject | point |
+--------+---------+-------+
| 홍길동 | 수학    |    90 |
| 홍길동 | 영어    |    60 |
| 홍길동 | 국어    |    80 |
| 김철수 | 수학    |   100 |
| 김철수 | 영어    |    80 |
| 김철수 | 국어    |    50 |
| 김영희 | 수학    |   100 |
| 김영희 | 영어    |   100 |
| 김영희 | 국어    |   100 |
+--------+---------+-------+
9 rows in set (0.00 sec)


mysql> select distinct(name) as 이름, sum(point) as 총점, sum(point)/3 as 평점 from subtable group by name;
+--------+------------+
| name   | sum(point) |
+--------+------------+
| 김영희 |        300 |
| 김철수 |        230 |
| 홍길동 |        230 |
+--------+------------+
3 rows in set (0.00 sec)


mysql> select distinct(name) as 이름, sum(point) as 총점, sum(point)/3 as 평점 fm subtable group by name;
+--------+------+----------+
| 이름   | 총점 | 평점     |
+--------+------+----------+
| 김영희 |  300 | 100.0000 |
| 김철수 |  230 |  76.6667 |
| 홍길동 |  230 |  76.6667 |
+--------+------+----------+
3 rows in set (0.00 sec)

출처 : http://www.sqldic.co.kr/sqldicView.action?sqldic.bbs_seq=446&page=1

[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]
|

댓글 2개

group by 하면 distinct는 필요없어요.
PHP 5.3.0 부터는 바뀐게 많아서..
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
15년 전 조회 3,023
15년 전 조회 2,187
16년 전 조회 1,785
16년 전 조회 1,996
16년 전 조회 2,490
16년 전 조회 1,572
16년 전 조회 2,505
16년 전 조회 1,830
16년 전 조회 1,944
16년 전 조회 1,593
16년 전 조회 2,291
16년 전 조회 1,602
16년 전 조회 2,029
16년 전 조회 2,216
16년 전 조회 1,290
16년 전 조회 1,350
16년 전 조회 2,012
16년 전 조회 5,435
16년 전 조회 1,734
16년 전 조회 2,256
16년 전 조회 2,451
16년 전 조회 1,607
16년 전 조회 1,397
16년 전 조회 2,328
16년 전 조회 5,039
16년 전 조회 2,309
16년 전 조회 2,971
16년 전 조회 1,844
16년 전 조회 3,698
16년 전 조회 4,541
16년 전 조회 3,189
16년 전 조회 2,450
16년 전 조회 2,543
16년 전 조회 2,776
16년 전 조회 2,274
16년 전 조회 5,626
16년 전 조회 3,470
16년 전 조회 1,455
16년 전 조회 1,810
16년 전 조회 5,169
16년 전 조회 2,416
16년 전 조회 3,503
16년 전 조회 2,762
16년 전 조회 1,660
16년 전 조회 5,466
16년 전 조회 2,571
16년 전 조회 6,069
16년 전 조회 2,040
16년 전 조회 4,115
16년 전 조회 3,136
16년 전 조회 2,310
16년 전 조회 2,332
16년 전 조회 4,486
16년 전 조회 3,387
16년 전 조회 2,924
16년 전 조회 3,068
16년 전 조회 2,189
16년 전 조회 1,870
16년 전 조회 1,789
16년 전 조회 1,503
16년 전 조회 1,774
16년 전 조회 2,001
16년 전 조회 1,698
16년 전 조회 4,934
16년 전 조회 3,939
16년 전 조회 1,891
16년 전 조회 1,642
16년 전 조회 2,377
16년 전 조회 4,622
16년 전 조회 3,638
16년 전 조회 2,685
16년 전 조회 4,426
16년 전 조회 3,295
16년 전 조회 1,457
16년 전 조회 1,475
16년 전 조회 2,146
16년 전 조회 1,982
16년 전 조회 2,677
16년 전 조회 2,328
16년 전 조회 1,468
16년 전 조회 4,489
16년 전 조회 1,585
16년 전 조회 1,882
16년 전 조회 2,302
16년 전 조회 3,952
16년 전 조회 2,849
16년 전 조회 1,583
16년 전 조회 4,130
16년 전 조회 1,491
16년 전 조회 1,676
16년 전 조회 1,347
16년 전 조회 1,810
16년 전 조회 1,721
16년 전 조회 1,727
16년 전 조회 1,510
16년 전 조회 2,276
16년 전 조회 1,903
16년 전 조회 2,059
16년 전 조회 2,287
16년 전 조회 1,571