| col 1 | col 2 | col 3 |
|-------|-------|-------|
| 67458 | ADM | 1008 |
| 67458 | ADM | 1009 |
| 67458 | SKI | 1009 |
| 67458 | LIS | 1010 |
| 67458 | TOU | 1121 |
How to get max value of col3
when col2='ADM'
and use that as the value for rest of the records?
Expected Result:
| 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 |
I know how to do this with sub-selects and all. col4
will be a pseudo-column to be used downstream for JOINs and stuff.
I have tried the following but it populates 1121 instead of 1009:
MAX(col3) OVER (PARTITION BY col1 (CASE WHEN col2='ADM' THEN col2 END) ORDER BY col1)