| A | B | C | D | E |
|---|---|---|---|---|
| 1 | A01 | 100 | 01 | A0001 |
| 2 | A02 | 200 | 01 | A0002 |
| 3 | A02 | 200 | 01 | A0003 |
| 4 | A02 | 200 | 02 | A0004 |
| 5 | A03 | 100 | 02 | A0005 |
| 6 | A03 | 200 | 02 | B0006 |
| 7 | A03 | 100 | 01 | B0007 |
| 8 |
A04 |
100 | 01 | B0008 |
위와 같이 표가 있을 때
| A | B | C | D | E |
| 1 | A01 | 100 | 01 | A0001 |
| 2 | A02 | 200 | 01 | A0002 |
| 6 | A03 | 200 | 02 | B0006 |
| 8 | A04 | 100 | 01 | B0008 |
이렇게 출력하고 싶습니다
B를 기준으로 그룹해서 C를 기준으로 max값 하나가 추출되는 형태입니다 만약 C의 값이 동일하다면 랜덤값 아무거나 상관없습니다다가능할까요...?
-- 아무거나 보다는. 유일값을 추출할 수 있는 정렬 기준을 추가하는 것을 추천합니다.
SELECT *
FROM (SELECT a, b, c, d, e
-- , ROW_NUMBER() OVER(PARTITION BY b ORDER BY c DESC) rn -- 아무거나
, ROW_NUMBER() OVER(PARTITION BY b ORDER BY c DESC, a) rn -- 유일기준
FROM t
) a
WHERE rn = 1
;