테스트 사이트 - 개발 중인 베타 버전입니다

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

· 16년 전 · 3023 · 2

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

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개

16년 전
group by 하면 distinct는 필요없어요.
PHP 5.3.0 부터는 바뀐게 많아서..

게시글 목록

번호 제목
29519
13798
21031
430
426
13796
422
418
13793
415
29513
13791
407
392
383
381
371
368
13785
364
361
21027
29509
29507
357
13779
356
29505
13778
13775
29504
13774
353
350
346
13773
29494
25166
13771
13769
340
329
13765
324
319
318
314
312
310
307
300
299
13761
13758
13756
13754
13752
13750
29493
29492
13749
13747
29489
13746
13745
13744
13743
13742
29488
13740
13739
13738
13737
13731
13730
13729
13728
13727
29487
13726
13725
13724
13723
29486
13722
13721
13720
29485
13719
JavaScript case 문
21013
21007
13715
13713
13710
13707
13705
13700
25155
13698
13697