수업/SQL
3명씩 줄 세우기
케잉
2023. 11. 26. 22:40
1. 번호 매겨서 줄 세우기
SELECT rownum rno, emp_name FROM temp;
📢 여기서 1, 2, 3번이 모두 1 출력되게 해야한다
왜냐면 3번까지의 이름은 모두 첫 줄에 출력돼야 하기 때문이다
2.
SELECT
rno, ceil(rno/3) cno
FROM (
SELECT rownum rno FROM temp
);
📢 각 행 번호를 3으로 나눈 결과의 올림 값을 계산하는 쿼리
- SELECT rownum rno FROM temp: "temp" 테이블에서 행 번호 (rownum)를 선택하고 결과 열을 "rno"로 별칭함
- SELECT rno, ceil(rno/3) cno FROM ~: 서브쿼리에서 얻은 행 번호("rno")를 선택하고 각 행 번호를 3으로 나눈 후 그 결과를 올림하여 "cno" 열에 저장
결과: "rno" 및 "cno" 두 열로 구성
3.
SELECT
rno, ceil(rno/3) cno, mod(rno,3) mno
FROM (
SELECT rownum rno FROM temp
);
📢 서브쿼리: rownum으로 각 행에 대해 번호(rno)부여.
바깥쪽 쿼리에서는 다음과 같은 세 가지 열을 선택합니다:
- rno: 내부 쿼리에서 가져온 행 번호입니다.
- cno: rno를 3으로 나눈 결과의 올림 값 → 각 행을 그룹화하여 세 개씩 묶는 것
- mno: rno를 3으로 나눈 나머지 → 특정 행이 그룹 내에서 어느 위치에 속하는지를 알려줌