본문 바로가기

전체 글73

프로그래머스 - 과일로 만든 아이스크림 고르기 SELECT LEFT.FLAVOR FROM FIRST_HALF LEFT,ICECREAM_INFO RIGHT WHERE LEFT.TOTAL_ORDER >3000 AND RIGHT.INGREDIENT_TYPE = 'fruit_based' AND LEFT.FLAVOR = RIGHT.FLAVOR ORDER BY LEFT.TOTAL_ORDER DESC 오라클에서 JOIN을 하는 방식은 여러개 있는데, 크게는 ANSI JOIN과 ORACLE JOIN으로 나뉘고 세세하게는 INNER JOIN / OUTER JOIN / CROSS JOIN / FULL OUTER JOIN이 있다. 그 중 INNER JOIN / OUTER JOIN은 자주 쓰여서 꼭 알아두면 좋다. 2022. 11. 5.
프로그래머스 - 12세 이하인 여자 환자 목록 출력하기 SELECT PT_NAME, PT_NO, GEND_CD, AGE, CASE WHEN TLNO IS NULL THEN 'NONE' ELSE TLNO END FROM PATIENT WHERE AGE 2022. 11. 5.
프로그래머스 - 조건에 맞는 회원수 구하기 SELECT COUNT(*) AS USERS FROM USER_INFO WHERE AGE >= 20 AND AGE 2022. 11. 4.
프로그래머스 - 가장 비싼 상품 구하기 SELECT PRICE AS MAX_PRICE FROM PRODUCT ORDER BY PRICE DESC WHERE rownum = 1 처음엔 이렇게 생각하고 쿼리를 작성했다. 하지만 문법 오류가 떴고, 예전에 풀었던 문제를 참고해서 다시 작성해 봤다. SELECT PRICE AS MAX_PRICE FROM (SELECT * FROM PRODUCT ORDER BY PRICE DESC) WHERE rownum = 1 쿼리에는 순서가 있다. FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY순으로 쿼리를 작성해주면 되는데. 처음 작성한 코드는 WHERE 앞에 ORDER BY가 있었기에 문제가 생겼다. 하지만 서브쿼리로 감싸 가격을 내림차순으로 정렬한 후 WHERE 조건문을 .. 2022. 11. 4.
프로그래머스 - 경기도에 위치한 식품창고 목록 출력하기 SELECT WAREHOUSE_ID, WAREHOUSE_NAME,ADDRESS, CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END FROM FOOD_WAREHOUSE WHERE WAREHOUSE_NAME LIKE '%경기%' ORDER BY WAREHOUSE_ID 케이스로 FREEZER_YN 항목의 NULL인 데이터를 N으로 전환해주고 나머지는 ELSE로 그대로 출력하게 냅둔다. 경기에 있는 공장을 출력할 수 있는 방식은 두가지 인데. 하나는 위에 처럼 WAREHOUSE_NAME에 대해 LIKE를 해서 '%경기%' 경기가 중간에 포함되어있는 데이터를 출력하는 것. SELECT WAREHOUSE_ID, WAREHOUSE_NAME,ADDRESS, CASE.. 2022. 11. 4.
프로그래머스 - 흉부외과 또는 일반외과 의사 목록 출력하기 SELECT DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD,'YYYY-MM-DD') FROM DOCTOR WHERE MCDP_CD LIKE 'CS' OR MCDP_CD LIKE 'GS' ORDER BY HIRE_YMD DESC, DR_NAME ASC TO_CHAR로 시간형식을 바꿔주고 진료과가 CS/GS인 데이터만 출력해주면 된다. MCDP_CD가 CS/GS인지는 IN() 을 사용해서 구현 할 수도 있다. SELECT DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD,'YYYY-MM-DD') FROM DOCTOR WHERE MCDP_CD IN ('CS','GS') ORDER BY HIRE_YMD DESC, DR_NAME ASC 2022. 11. 4.