여러 기준과 특정 순서를 가진 특정 열에 의한 구별되는 행
테이블이 하나 있습니다.
id(unique) priority foreignId name
1 true 12 a
2 false 12 b
3 false 13 c
4 true 13 d
5 false 14 a
6 false 14 x
이제 특정 외래 ID(들)에 대한 고유한 행을 원합니다. 예를 들어,
나는 외국인 Id 12 & 14 "where 외국인 Id in (12, 14)"에 대한 모든 행을 원한다, 결과는 다음과 같아야 합니다.
id(unique) priority foreignId name
1 true 12 a
5 false 14 a
여기서 논리는 우선순위가 맞는 항목을 원하는 것뿐입니다.우선 순위가 있는 항목이 없으면 ID가 가장 낮은 행만 선택해야 합니다.
외부 ID 13의 두 번째 예
id(unique) priority foreignId name
4 true 13 d
CTE(으)ROW_NUMBER
그리고 거짓 앞에 처음 나타나는 정렬, 당신은 원하는 답을 얻습니다.
WITH CTE AS (SELECT `id`, `priority`, `foreignId`, `name`, ROW_NUMBER() OVER (PARTITION BY `foreignId` ORDER BY `priority` DESC) row_num FROM tabl1 WHERE `foreignId` IN (12,14)) SELECT `id`, `priority`, `foreignId`, `name` FROM CTE WHERE row_num = 1
ID | 우선 순위 | 외국인 ID | 이름-: | :------- | --------: | :---1 | 참 | 12 | a5 | 거짓 | 14 | a
WITH CTE AS (SELECT `id`, `priority`, `foreignId`, `name`, ROW_NUMBER() OVER (PARTITION BY `foreignId` ORDER BY `priority` DESC) row_num FROM tabl1 WHERE `foreignId` IN (13)) SELECT `id`, `priority`, `foreignId`, `name` FROM CTE WHERE row_num = 1
ID | 우선 순위 | 외국인 ID | 이름-: | :------- | --------: | :---4 | 참 | 13 | d
db<>여기로 이동
언급URL : https://stackoverflow.com/questions/73214160/distinct-row-by-a-certain-column-with-multple-criterias-and-specific-order
'programing' 카테고리의 다른 글
IPython 노트북을 명령줄을 통해 파이썬 파일로 변환하려면 어떻게 해야 합니까? (0) | 2023.06.19 |
---|---|
Git가 새 하위 모듈을 시작/동기화/업데이트하지 않음 (0) | 2023.06.19 |
TypeScript에서 불투명 유형을 정의하는 방법은 무엇입니까? (0) | 2023.06.14 |
문자열에서 문자 인스턴스 바꾸기 (0) | 2023.06.14 |
왜 클랑은 "||" 안에 "&"이라고 경고합니까? (0) | 2023.06.14 |