문제 설명
여러 열을 기반으로 중복을 제거하고 하나의 고유한 레코드를 선택하도록 조건을 설정합니다. (Remove duplicates based on multiple columns and set conditions to choose one unique record)
다른 열에서 설정한 조건에 따라 한 열에서 중복을 제거하려면 SQL 도움말이 필요합니다.
감사 열에는 NULL 값이 있을 수 있습니다. 다음과 같은 레코드의 우선 순위를 지정하고 싶습니다.
- 중복 색상 제거
- 그런 다음 가장 빠른 날짜순으로 정렬
- 하지만 감사 열 는 이전 날짜에 대해 NULL입니다. 그렇지 않은 경우 다음 레코드를 선택하고 싶습니다.
- 감사 열이 모든 항목에 대해 NULL인 경우에도 가장 빠른 날짜를 가진 항목이 선택되기를 원합니다.
아래 예.
여기에 내가 가진 것이 있습니다.
참조 솔루션
방법 1:
This answer assumes that your want to choose the yes audit record, if available, followed by no, then followed by NULL
, if neither of the previous two be available.
SELECT DISTINCT ON (Color) *
FROM yourTable
ORDER BY Color, Audit DESC NULLS LAST, Date;
(by nz426、Tim Biegeleisen)
참조 문서
ID | 색상 |
---|