프로그래머스
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기
ys.k
2023. 12. 21. 20:49
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
sql injection을 공부할 땐 mysql을 많이 사용했다.
행의 개수를 원하는 만큼 추출할 때, limit을 사용하면 되었다.
하지만 oracle을 공부하던 중 오라클은 사용법이 조금 다른 것 같아 포스팅한다.
행 개수
Mysql
select * from table limit 1;
Oracle
select * from (select * from table) where rownum = 1;
으로 같은 1개의 행을 추출하는 쿼리이지만, 서로 다른 양상을 보인다.
또한 생성형 ai의 발달로 재미난 결과를 얻을 수 있었다.
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE,
RANK() OVER (ORDER BY PRICE DESC) price_rank
FROM FOOD_PRODUCT
from 절에 서브쿼리를 통해 rank() over(order by) col_name을 통해
서브 쿼리 외부의 where 조건절에 순위를 불러올 수 도 있다.
신기하다
다중 IN
Oracle
WHERE (DEPTNO, JOB) IN ((20, 'MANAGER'), (30, 'CLERK'));
을 통해 deptno가 20 이면서 job이 manager인 것과, 30이면서 clerk인 것을 조회할 수 있다.