본문 바로가기

mysql17

[프로그래머스] Lv5. 상품을 구매한 회원 비율 구하기 / JOIN 💡문제 처음 제출한 코드 SELECT YEAR(O.sales_date), MONTH(O.sales_date), COUNT(U.user_id) AS PUCHASED_USERS FROM user_info U JOIN online_sale O ON U.user_id = O.user_id WHERE Year(U.joined) = 2021 GROUP BY YEAR(O.sales_date), MONTH(O.sales_date) 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수) 테이블 필요 정답 코드 # 1 - WITH문 WITH rate AS (SELECT COUNT(DISTINCT user_id) rate_user -- 2021년에 가입한 회원수.. 2022. 11. 28.
[프로그래머스] Lv3. 헤비 유저가 소유한 장소 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr host_id 가 2개 이상인 데이터 조 정답코드 # 1 SELECT id, name, host_id FROM PLACES WHERE host_id IN (SELECT host_id FROM places GROUP BY host_id HAVING COUNT(host_id) > 1) ORDER BY ID # 2 -- JOIN문 SELECT T1.ID, T1.NAME, T1.HOST_ID FRO.. 2022. 11. 27.
[SQL문법] DATEDIFF, TIMESTAMPDIFF (날짜 차이)-MySQL 날짜간의 차이를 가져오는 함수 : DATEDIFF, TIMESTAMPDIFF DATEDIFF DATEDIFF(날짜1, 날짜2) # = 날짜1 - 날짜2 TIMESTAMPDIFF TIMESTAMPDIFF(단위, 날짜1, 날짜2) # 날짜2 - 날짜1 단위 SECOND : 초 MINUTE : 분 HOUR : 시 DAY : 일 WEEK : 주 MONTH : 월 QUARTER : 분기 YEAR : 연 프로그래머스 예시1 2022.12.11 - [Data Analytics/Programmers] - [프로그래머스] Lv3. 오랜 기간 보호한 동물(1) / 오랜 기간 보호한 동물(2) [프로그래머스] Lv3. 오랜 기간 보호한 동물(1) / 오랜 기간 보호한 동물(2) 오랜 기간 보호한 동물(1) 문제 https:.. 2022. 11. 24.
[프로그래머스] Lv3. 조건별로 분류하여 주문상태 출력하기 문제 OUT_DATE 날짜가 5월 1일까지인것은 '출고완료' 5월 1일 이후인것은 '출고대기' 그외에는 '출고미정' 출력 → CASE WHEN 또는 IF 문 사용 정답코드 # 1 SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') OUT_DATE , CASE WHEN out_date > '2022-05-01' THEN '출고대기' WHEN out_date 0 THEN '출고대기' -- 출고날짜에서 5월 1일 빼기 ELSE '출고완료' END AS '출고여부' FROM FOOD_ORDER ORDER BY ORDER_ID ASC; 2022.11.24 - [SQL/SQL 문법] - [SQL문법] MySQL/ DATEDIFF, TIMESTAMPDIFF .. 2022. 11. 24.
[프로그래머스] Lv4. 입양 시각 구하기(2) / SET 문제 제출한 코드 SELECT HOUR(datetime) H, COUNT(datetime) 'COUNT' FROM animal_outs GROUP BY H HAVING H BETWEEN 0 AND 23 ORDER BY H -- 오답 정답 코드 문제에서 0시에서 23시까지 조회하라고 했지만 데이터상 0~6시는 없으므로 SET문으로 0~23시 테이블을 만들어줘야한다. # 0~23 테이블 만들기 SET @HOUR = -1; SELECT (@HOUR := @HOUR +1) AS HOUR FROM animal_outs WHERE @HOUR < 23; @변수명 = 넣어줄 값 @HOUR = -1 : HOUR 변수에 -1 넣기 := 대입하기 @HOUR에 +1 씩 대입하기 → 0, 1, 2, 3.. WHERE 절로 조건.. 2022. 11. 21.
[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 / GROUP BY 문제 제출한 코드 정답코드와 실행결과는 같지만 제출시 오답 SELECT category, MAX(price) 'MAX_PRICE', product_name FROM food_product GROUP BY category HAVING category IN ('과자','국','김치','식용유') ORDER BY MAX_PRICE DESC category IN ('과자','국','김치','식용유') → 데이터셋에 '국자'도 있으면 같이 조회될 수 있다. 정답 코드 SELECT category, price AS 'MAX_PRICE', product_name FROM food_product WHERE (category, price) IN (SELECT category, MAX(price) FROM food_pro.. 2022. 11. 20.