| col 1 | col 2 | col 3 |
|-------|-------|-------|
| 67458 | ADM | 1008 |
| 67458 | ADM | 1009 |
| 67458 | SKI | 1009 |
| 67458 | LIS | 1010 |
| 67458 | TOU | 1121 |
col3
언제 최대 값을 얻고 col2='ADM'
나머지 레코드의 값으로 사용하는 방법은 무엇입니까?
예상 결과:
| col 1 | col 2 | col 3 | col 4 |
|-------|-------|-------|-------|
| 67458 | ADM | 1008 | 1009 |
| 67458 | ADM | 1009 | 1009 |
| 67458 | SKI | 1009 | 1009 |
| 67458 | LIS | 1010 | 1009 |
| 67458 | TOU | 1121 | 1009 |
하위 선택 및 모두로 이것을 수행하는 방법을 알고 있습니다. col4
JOIN 및 물건을 위해 다운 스트림에서 사용되는 의사 열이 될 것입니다.
다음을 시도했지만 1009 대신 1121 을 채 웁니다 .
MAX(col3) OVER (PARTITION BY col1 (CASE WHEN col2='ADM' THEN col2 END) ORDER BY col1)
SELECT t.*, max(CASE WHEN col2 = 'ADM' THEN col3 END) OVER (PARTITION BY col1) AS col4
FROM tbl t;
집계 FILTER
절은 PostgreSQL 9.4에서 도입되었으며 이에 적합합니다. 그러나 Redshift는 Postgres가 아니며 Postgres의 이후 추가 기능은 대부분 지원되지 않습니다. 비교:
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다