[oracle] 동일한 ID의 행을 하나만 나오게 1 2 475

by 초보자 [Oracle 기초] [2021.07.05 22:01:20]


안녕하십니까!

혹시 비슷한 데이터 행을 하나로 합치는 방법이 있을까 합니다.

만약 모두 다 똑같다면 group by를 하거나, distinct를 사용했을텐데 중간에 한 데이터가 달라서 어떻게 해야할지 모르겠네요ㅠㅠ



id | name | age | birth
-----------------------------
1 | lee      |  25  | 9702
2 | lee      |  26  | 9611
1 | lee      |  27  | 9705
3 | kim     |  24  | 9808

(after)

id | name | age 
---------------------
1 | lee      |  25  
2 | lee      |  26  
3 | kim     |  24 

데이터는 제가 임의로 넣은 값이고, id값 당 한 로우만 나오도록 출력 하고싶습니다.

id가 중복된다면 -> 하나만 출력 (하도록 하는데, 그 하나는 아무거나 출력 O)

 

by pajama [2021.07.05 22:27:35]

row_number 함수를 썼습니다. 기준은 여러가지로 잡을 수 있을 듯합니다.


select id, lname, age
from (
select id, lname, age, row_number() over (partition by id order by id) rn from t
)
where rn = 1

 


by 마농 [2021.07.06 15:01:36]

제목을 잘 정하셔야 합니다.
- 비슷한 행을 하나로 합치기? (X)
- 동일한 ID의 행을 하나만 나오게? (O)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입