본문 바로가기

SQL124

[프로그래머스 / SQL] 자동차 대여 기록 별 대여 금액 구하기 -CodeSELECT CCRH.HISTORY_ID, ROUND( CRCC.DAILY_FEE * (DATEDIFF(CCRH.END_DATE, CCRH.START_DATE) + 1) * ( CASE WHEN DATEDIFF(CCRH.END_DATE, CCRH.START_DATE) + 1 >= 90 THEN 0.85 WHEN DATEDIFF(CCRH.END_DATE, CCRH.START_DATE) + 1 >= 30 THEN 0.92 WHEN DATEDIFF(CCRH.END_DATE, CCRH.START_DATE) + 1 >= 7 THEN 0.95 ELSE 1 .. 2025. 8. 6.
[프로그래머스 / SQL] 특정 세대의 대장균 찾기 -CodeSELECT ED3.IDFROM ECOLI_DATA AS ED1 JOIN ECOLI_DATA AS ED2 ON ED1.ID = ED2.PARENT_ID JOIN ECOLI_DATA AS ED3 ON ED2.ID = ED3.PARENT_ID WHERE ED1.PARENT_ID IS NULLORDER BY ID;같은 테이블 2개 JOIN까지는 생각했는데 3개를 JOIN해야 하는 것을 생각 못해서 처음에 헤매었습니다. 2025. 8. 6.
[SQL] SET SET SQL의 SET 명령어는 주로 환경 설정, 변수 할당, 또는 데이터베이스 옵션 변경에 사용됩니다. 예를 들어, SET 명령어를 사용하여 세션의 옵션을 변경하거나, 사용자 정의 변수를 선언하고 값을 할당할 수 있습니다. 또한, SET 명령어를 사용하여 데이터베이스 연결을 설정하거나, SQL 쿼리에서 사용할 변수를 초기화할 수도 있습니다. 🏷️ 사용법-- 선언법SET @변수명 = 변수값;-- 출력SELECT @변수명;🏷️ 예시SET @NUM1 = 1;SET @NUM2 = 2;SELECT @NUM1 + @NUM2-- 출력값 3❗주의사항SELECT @NUM1 = 10;-- 결과: NullSELECT @NUM2 = 10;-- 결과: 10SELECT 안에서 변수를 설정하는 경우에는 @변수명 = 변수값이.. 2025. 8. 5.
[프로그래머스 / SQL] 입양 시각 구하기(2) -CodeSET @HOUR = -1;SELECT ( @HOUR := @HOUR + 1 ) AS HOUR, ( SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR ) AS COUNTFROM ANIMAL_OUTSWHERE @HOUR 처음에는 쉽게 HOUR을 이용해 GROUP BY하여 작성했으나 COUNT로 값이 나오지 않는 시간은 나오지 않았습니다. 이 부분에 대해서 해결방법이 떠오르지 않아 찾아보니 SET이라는 명령어를 사용해 직접 선언 및 증가 시켜 각각 사간 마다 맞는 COUNT를 뽑아와야 하는 것이어서.. 2025. 8. 5.
[프로그래머스 / SQL] 오프라인/온라인 판매 데이터 통합하기 -CodeSELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ONLINE_SALEWHERE SALES_DATE LIKE '2022-03%'UNIONSELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNTFROM OFFLINE_SALEWHERE SALES_DATE LIKE '2022-03%'ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;테이블이 2개라 JOIN을 통해서 조회.. 2025. 8. 4.
[프로그래머스 / SQL] 그룹별 조건에 맞는 식당 목록 출력하기 -CodeSELECT MP.MEMBER_NAME, RR.REVIEW_TEXT, DATE_FORMAT(RR.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATEFROM MEMBER_PROFILE AS MP JOIN REST_REVIEW AS RR ON MP.MEMBER_ID = RR.MEMBER_IDWHERE RR.MEMBER_ID = ( SELECT MEMBER_ID FROM REST_REVIEW GROUP BY MEMBER_ID ORDER BY COUNT(*) DESC LIMIT 1 )ORD.. 2025. 8. 3.