본문 바로가기
수업(국비지원)/Oracle

[Oracle] SQL 복수행 함수(그룹함수) - rownum, rowid 오라클 예약어

by byeolsub 2023. 4. 14.
  • 오라클 예약어
- rownum : 레코드 조회 순서. 1 부터 읽을 수 있다.(where 절에 의하여 정해진 순차적인 번호)
                   order by 구문 이전에 미리 설정됨. order by 구문으로 값 변경 되지 않음.
                   그룹 함수에서 사용 불가.
- rowid : 레코드를 구분 할 수 있는 고유의 id.(모든 row에 유일한 번호다.)
                    rowid가 다른 경우는 다른 레코드임.
예시 : 학생의 정보를 5건만 조회하기.
select *from student where rownum<= 5;
예시 : 학생테이블의 roenum값이 6 이상인 레코드 조회  -- 처리불가.
select *from student where rownum > 5                  

- rownum 특징 : 1번을 읽어야 2,3,4...를 읽을 수 있음.

문제 : 
 1. 학생의 이름,학년,레코드 순서를 조회하기. 학생의 이름순으로 정렬.
select name,grade,rownum from student order by name;
문제 : 
 2. 학생의 학년별 인원수,레코드 순서 조회하기. 
select grade, count(*), rownum from student  
 -- 오류 : not a single-group group function
          그룹 함수에서 사용 불가.