[SQL] Postgresql, 정렬하고 중복제거하기 #DISTINCT ON

2020. 4. 4. 17:29Diary

created 컬럼에 대한 정렬이 필요하고 channel_id 컬럼을 중복제거 하고 싶다면

SELECT DISTINCT ON (channel_id) *
  FROM channelstat
 ORDER BY channel_id, created DESC

 위와 같이 order by 구문에 중복제거에 대상이 되는 channel_id 컬럼을 먼저 넣어주어야 한다. 만약 channel_id가 먼저 나오지 않는다면 다음과 같은 ERROR 메세지를 만나게 될 것이다.

postgresql ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions