수업/SQL

3명씩 줄 세우기

케잉 2023. 11. 26. 22:40

temp table

 


 

 

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으로 나눈 나머지 →   특정 행이 그룹 내에서 어느 위치에 속하는지를 알려줌