Backend/SQL (11) 썸네일형 리스트형 [프로그래머스_SQL] 카테고리 별 상품 개수 구하기 #SUBSTR #LEFT MySQLSELECT LEFT(PRODUCT_CODE, 2) as CATEGORY, COUNT(PRODUCT_ID) as PRODUCTSFROM PRODUCTGROUP BY CATEGORYORDER BY CATEGORY; OracleSELECT SUBSTR(PRODUCT_CODE, 1, 2) as CATEGORY, COUNT(PRODUCT_ID) as PRODUCTSFROM PRODUCT GROUP BY SUBSTR(PRODUCT_CODE, 1, 2)ORDER BY CATEGORY; MySQL의 경우, LEFT 함수를 사용하여 문자열의 왼쪽에서 2글자를 추출합니다. GROUP BY 절에서 별칭을 사용합니다.Oracle의 경우, SUBSTR 함수를 사용하여 문자열의 1번째 위치에서 2글자를 추출합니다. .. [프로그래머스_SQL] 특정 옵션이 포함된 자동차 리스트 구하기 #LIKE SQLSELECT *FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS like '%네비게이션%'ORDER BY CAR_ID DESC; 특정 문자열을 포함하기 위해서는 LIKE 연산자를 사용해야 합니다.% 와일드카드가 앞쪽에 있으면 ~네비게이션으로 끝나는 문자열,% 와일드카드가 뒤쪽에 있으면 네비게이션~으로 시작하는 문자열,% 와일드카드가 양쪽에 있으면 네비게이션이 포함된 문자열입니다. 문제는 아래에서 확인할 수 있습니다.https://school.programmers.co.kr/learn/courses/30/lessons/157343?language=mysql 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠.. [프로그래머스_SQL] NULL 처리하기 #IFNULL #NVL MySQLSELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') as NAME, SEX_UPON_INTAKEFROM ANIMAL_INSORDER BY ANIMAL_ID ASC; OracleSELECT ANIMAL_TYPE, NVL(NAME, 'No name') as NAME, SEX_UPON_INTAKEFROM ANIMAL_INSORDER BY ANIMAL_ID ASC; NULL을 No name으로 처리하기 위해서는 MySQL은 IFNULL, Oracle은 NVL을 이용합니다. 문자열은 작은 따옴표('')를 이용하여 나타냅니다. 문제는 아래에서 확인할 수 있습니다.https://school.programmers.co.kr/learn/courses/30/lessons/59410?la.. [프로그래머스_SQL] 연도별 대장균 크기의 편차 구하기 #JOIN MySQLSELECT YEAR(a.DIFFERENTIATION_DATE) as YEAR , (b.MAX_SIZE - a.SIZE_OF_COLONY) as YEAR_DEV , a.IDFROM ECOLI_DATA aLEFTJOIN( SELECT YEAR(DIFFERENTIATION_DATE) as YEAR , MAX(SIZE_OF_COLONY) as MAX_SIZE FROM ECOLI_DATA GROUP BY YEAR(DIFFERENTIATION_DATE) ) as bON YEAR(a.DIFFERENTIATION_DATE) = b.YEARORDER BY YEAR ASC, YEAR_DEV ASC; 서브 쿼리를 이용하여 LEFT JOIN을 수행합니다.각 연도의 최대값.. [프로그래머스_SQL] 상위 n개 레코드 LIMIT, ROWNUM MySQLSELECT NAMEFROM ANIMAL_INS ORDER BY DATETIMELIMIT 1;MySQL은 LIMIT을 이용해서 처리할 수 있습니다. OracleSELECT NAMEFROM ( SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME ASC)WHERE ROWNUM Oracle은 ROWNUM을 이용해서 처리할 수 있습니다. LIMIT과 ROWNUM은 언뜻 보면 같아 보이지만, 동작에서 큰 차이가 있습니다.예를 들어, LIMIT은 ORDER BY 실행 후 결과를 제한합니다. 하지만, ROWNUM은 ORDER BY 실행 전에 번호가 매겨지므로, 정렬된 결과에서 행을 제한하려면 서브쿼리를 사용해야 합니다.-- MySQLSELECT * FROM t.. [프로그래머스_SQL] 12세 이하인 여자 환자 목록 출력하기 IFNULL, NVL MySQLSELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE')FROM PATIENTWHERE AGE MySQL은 IFNULL을 이용해서 NULL 값 처리를 할 수 있습니다. OracleSELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE')FROM PATIENTWHERE AGE Oracle은 NVL을 이용해서 NULL 값 처리를 할 수 있습니다. 두 함수는 동일한 기능을 하며 DBMS에 따라 다르게 사용합니다.IFNULL(VALUE1, VALUE2)NVL(VALUE1, VALUE2)VALUE1 값이 null이면 VALUE2 값을 출력하고, VALUE1 값이 null이 아니면 VALUE1 값을 출력합니다. [프로그래머스_SQL] 과일로 만든 아이스크림 고르기 -- 내림차순, 조인SELECT FH.FLAVOR FROM FIRST_HALF FHINNER JOIN ICECREAM_INFO II ON FH.FLAVOR = II.FLAVORWHERE TOTAL_ORDER > 3000 AND INGREDIENT_TYPE = 'fruit_based' 내림차순(자동)과 INNER JOIN을 이용해서 구할 수 있습니다. ... 문제는 아래에서 확인할 수 있습니다.https://school.programmers.co.kr/learn/courses/30/lessons/133025 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [프로그래머스_SQL] 평균 일일 대여 요금 구하기 SELECT ROUND(AVG(DAILY_FEE), 0) as AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV' 간단한 SELECT문입니다.ROUND()의 경우, 소수 첫 번째 자리에서 반올림하려면 0을 작성해야 합니다. ... 문제는 아래에서 확인할 수 있습니다.https://school.programmers.co.kr/learn/courses/30/lessons/151136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이전 1 2 다음 목록 더보기