SQL

[MySQL] SQL 함수 : COUNT, SUM, AVG, MAX, MIN, DISTINCT

zzheng 2024. 5. 27. 20:33

조인하는 검색

-세가지 형식 명세

  • 테이블1 JOIN 테이블2 ON 조건식
  • 테이블1 JOIN 테이블2 USING (열_리스트)
  • 테이블1 NATURAL JOIN 테이블2 
mysql> SELECT Sname, Dept, Grade
    -> FROM STUDENT JOIN ENROL ON(STUDENT.Sno=ENROL.Sno)
    -> WHERE ENROL.Cno = 'C413';

 

집계 함수 : COUNT, SUM, AVG, MAX, MIN

- COUNT

mysql> SELECT COUNT(*) AS 학생수 FROM STUDENT;

 

- AVG

# 과목 'C413'의 중간 성적 평균은?
mysql> SELECT AVG(Midterm) AS 중간평균
    -> FROM ENROL WHERE Cno = 'C413';
# 과목별 기말 성적(Final)의 평균은?
mysql> SELECT Cno, AVG(Final) AS 기말평균
    -> FROM ENROL
    -> GROUP BY Cno;
# 3명 이상 등록한 과목의 기말 평균 성적을 검색하기
mysql> SELECT Cno, AVG(Final) AS 평균
    -> FROM ENROL
    -> GROUP BY Cno
    -> HAVING COUNT(*) >=3;

 

- DISTINCT

DISTNCT는 중복되는 값을 제외하고 조회할 때 사용합니다.  즉, DISTINCT 키워드를 붙인 필드(컬럼)는 중복 값을 합쳐 한 번만 출력합니다.

# 학번(Sno)이 300인 학생이 등록한 과목(Cno)은 몇개인가?
mysql> SELECT COUNT(DISTINCT Cno)
    -> FROM ENROL WHERE Sno = 300;