반응형
중복된 이름의 ID를 별도의 열로 이동하는 방법
중복 이름이 두 개인 MySQL 테이블이 있는데 중복 이름의 ID를 별도의 열로 구분하려면 어떻게 해야 합니까?
---------------------------------
| id | name | surname |
---------------------------------
| 557 | Logan | Smith |
| 1052 | Logan | Smith |
---------------------------------
예를 들어, 다음과 같습니다.
----------------------------------------
| id | id2 | name | surname |
----------------------------------------
| 557 | 1052 | Logan | Smith |
----------------------------------------
첫 번째 테이블의 현재 결과를 검색하기 위한 현재 SQL 문입니다.
SELECT userid as id, name, surname
FROM user
WHERE name = "Logan"
GROUP BY userid
각 이름에는 최대 하나의 중복만 있습니다.
감사해요.
최대값이 항상 2인 것이 확실한 경우...그러면 다음과 같이 할 수 있습니다.
SELECT min(userid) as id1, max(userid) as id2, name, surname
FROM user
WHERE name = "Logan"
GROUP BY name, surname
쿼리를 조금 더 세분화하려면
SELECT min(userid) as id1,
case when min(userId) = max(userid) then null else max(userId) end as id2, name, surname
FROM user
WHERE name = "Logan"
GROUP BY name, surname
다음과 같은 것을 사용할 수 있습니다.
with cte as (
select
row_number() over (partition by name, surname order by user_id) rn,
name,
surname,
user_id
from tt
)
select
name,
surname,
max(case when rn=1 then user_id end) as id_1,
max(case when rn=2 then user_id end) as id_2
from cte
group by name, surname
언급URL : https://stackoverflow.com/questions/70698117/how-to-move-id-of-duplicate-names-to-a-separate-column
반응형
'programing' 카테고리의 다른 글
데이터베이스에 모든 외부 키를 나열할 수 있습니까? (0) | 2023.07.01 |
---|---|
특정 https 원격에 대한 특정 자체 서명 서버 인증서를 수락하도록 Git 구성 (0) | 2023.07.01 |
iOS: 포인트가 rect 내부에 있는지 확인 (0) | 2023.07.01 |
Swift에서 UI_USER_INTERFACE_IDIOM()을 사용하여 현재 디바이스 탐지 (0) | 2023.07.01 |
ASP.NET WebApi: WebApi HttpClient를 사용하여 파일 업로드로 다중 파트 게시를 수행하는 방법 (0) | 2023.07.01 |