본문 바로가기

SQL

(5)
SQL 빠른 요약 제한 LIMIT: 조회 행수 제한 SELECT TOP 2 COL1, COL2... : 조회 행수 TOP N개 제한 정렬 ORDER BY: 정렬 (ASC, DESC) 조건문 WHERE: 등호 수식은 ==이 아닌 = BTWEEN 'A' AND 'B' 제외: NOT BETWEEN 10 AND 20 - 간단한 조건문 예제 SELECT * FROM TABLE1 WHERE AGE BETWEEN 10 AND 20 중복제거 SELECT DISTINCT (NULL 제외됨) IFESLE 함수 CASE, THEN, ELSE, END 함수 - 수식 CASE 컬럼 WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3 END AS 새 컬럼명
SQL 프로그래머스: 상품을 구매한 회원 비율 구하기 풀이 TIP 서브쿼리 사용 + YEAR, MONTH 함수 사용 + JOIN 어떻게 할지 고민하기 오래 걸릴 문제가 아니었는데, MONTH 함수 사용하지 않고 DATE_FORMAT(DATE, '%c')로 반환했더니 틀렸다. DATE_FORMAT(DATE, '%m')로 해야 정답 처리 되었다. (대체 왜 ????????) 사실 아직도 왜 틀린지 모르겠지만, 다른 분의 풀이를 보고 더 간단하게 푸는 법을 알았으니 뭐~... 내 풀이 SELECT YEAR(SALES_DATE) YEAR, MONTH(SALES_DATE) MONTH, COUNT(DISTINCT ONLINE_SALE.USER_ID) AS PUCHASED_USERS, ROUND(COUNT(DISTINCT ONLINE_SALE.USER_ID) / (SE..
SQL 프로그래머스: 없어진 기록 찾기 풀이 TIP 어떤 테이블 기준으로 JOIN 할지 생각한다. (OUTS엔 있어야 하지만, INS에는 없는 NAME) → OUTS 테이블 기준으로, LEFT OUTER JOIN 해주자. + 그냥 FROM TABLE1, TABLE2의 경우 WHERE로 조인해도 된다. 그러나 JOIN 함수 사용할 경우 ON으로 조인해주자. 1) INNER JOIN 2) OUTER JOIN 참고 사이트: https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/ 내 풀이 SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME FROM ANIMAL_OUTS LEFT OUTER ..
SQL 프로그래머스: 동명 동물 수 찾기 풀이 TIP GROUP BY의 조건문 HAVING을 사용하자. "HAVING문" - GROUP BY의 결과에 제약을 걸어주는 조건문이다. - GROUP BY 뒤에 작성해야 한다. - WHERE 전에 등장해야 한다. 내 풀이 SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME
SQL 프로그래머스: 자동차 대여 가능 여부 구분하기 풀이 TIP 서브쿼리를 사용하자. + CASE문을 사용하여 기간 안에 속한 CAR_ID를 꺼내자. (이 아이디어 떠올리는 것이 중요하다.) "CASE문" CASE 컬럼 WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3 END AS '새 컬럼명' 내 풀이 SELECT CAR_ID, CASE WHEN CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE ) THEN '대여중' ELSE '대여 가능' END AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID O..