제시하신 조건은 표현을 어렵게 해 놨습니다.
최근점수/20일 최고점수 >= 1
(최근점수) 를 (20일 최고점수) 로 나눈 값이 1보다 크거나 같다. 라는 건데
(최근점수) 는 (20일 최고점수) 에 포함되는 값이므로 논리적으로 1보다 클 수는 없고
1이 될 수는 있는데, 1이 된다는 의미는 (최근점수) 가 (20일 최고점수) 와 같다는 거죠.
SELECT 이름 , MAX(CASE rn WHEN 1 THEN 점수 END) 최근점수 , MAX(점수) 최고점수 FROM (SELECT 이름, 점수, 일자 , ROW_NUMBER() OVER(PARTITION BY 이름 ORDER BY 일자 DESC) rn FROM t ) a WHERE rn <= 20 GROUP BY 이름 HAVING MAX(CASE rn WHEN 1 THEN 점수 END) = MAX(점수) --HAVING MAX(CASE rn WHEN 1 THEN 점수 END) / MAX(점수) >= 1 ;