본문 바로가기

코딩테스트

(8)
[SQL 코딩테스트] 리트코드 Subqueries 정답 현업에서 서브쿼리보다 WITH구문을 더 선호한다는 이야기를 들었지만... 상황에 따라 적절한 구문을 잘 활용할 수 있는 게 최선일 테다. 처음으로 HARD가 있는 챕터. 화이팅! [EASY] 1978. Employees Whose Manager Left the Company LEFT JOIN / IS NULL ⏰ 8:30 LEFT JOIN RIGHT JOIN을 각각 어떤 상황에서 써야 하는지, 결과값이 어떻게 나오는지 아직도 약-간 헷갈린다. 반복 연습이 답! SELECT E1.EMPLOYEE_ID FROM EMPLOYEES E1 LEFT JOIN EMPLOYEES E2 ON E1.MANAGER_ID = E2.EMPLOYEE_ID WHERE E1.SALARY < 30000 AND E2.EMPLOYEE_I..
[SQL 코딩테스트] 리트코드 Advanced Select and Joins 정답 과연 베이직 챕터의 MEDIUM보다 어드밴스드 챕터의 EASY가 정말 더 쉬울것인가... 두둥 [EASY] 1731. The Number of Employees Which Report to Each Employee SELF JOIN / COUNT / AVG ⏰ 6:30 SELECT E1.EMPLOYEE_ID, E1.NAME, COUNT(E2.EMPLOYEE_ID) REPORTS_COUNT, ROUND(AVG(E2.AGE),0) AVERAGE_AGE FROM EMPLOYEES E1 JOIN EMPLOYEES E2 ON E1.EMPLOYEE_ID = E2.REPORTS_TO GROUP BY 1 ORDER BY 1 [EASY] 1789. Primary Department for Each Employee UNI..
[SQL 코딩테스트] 리트코드 Advanced String Functions / Regex / Clause 정답 무슨 문제가 나오는 건지 예상이 안되는 챕터..? EASY가 많으니 훈련한다 생각하고 해보자! [EASY] 1667. Fix Names in a Table CONCAT / UPPER / LOWER / SUBSTR ⏰ 4:23 SELECT USER_ID, CONCAT(UPPER(SUBSTR(NAME,1,1)),LOWER(SUBSTR(NAME,2))) AS NAME FROM USERS ORDER BY 1 [EASY] 1527. Patients With a Condition LIKE ⏰ 4:03 SELECT * FROM PATIENTS WHERE CONDITIONS LIKE 'DIAB1%' OR CONDITIONS LIKE '% DIAB1%' [EASY] 196. Delete Duplicate Emails D..
[SQL 코딩테스트] 리트코드 Sorting and Grouping 정답 어쩌다 보니 '해야 하는' 일들 중 코딩테스트가 제일 재밌는 일(?)이 되어 버려서 자꾸 여기로 도망온다. 오늘은 아침 일과 시작으로 코테부터 빠르게 뿌수고 진짜 해야 하는 일을 하러 가련다. 2356. Number of Unique Subjects Taught by Each Teacher #DISTINCT #GROUPBY ⏰ 4:47 SELECT TEACHER_ID, COUNT(DISTINCT SUBJECT_ID) CNT FROM TEACHER GROUP BY TEACHER_ID 1141. User Activity for the Past 30 Days I #BETWEEN #GROUPBY ⏰ 11:07 비트윈 함수를 쓸 때 무조건 AND 앞에 작은 숫자, 뒤에 큰 숫자가 와야 하는지 처음 알았다... 순..
[SQL 코딩테스트] 프로그래머스 IS NULL 정답 분명 별거 아닌거 아는데 뭔가 항상 틀릴 것 같고 무서운 NULL 관련 함수. 짧고 굵게 뿌셔보자. 경기도에 위치한 식품창고 목록 출력하기 #IFNULL 처음에 NULLIF와 헷갈려서 틀림. 아니 이걸 어케 외우지? 했는데 조금만 들여다보니 무식하게 영어를 해석하기만 하면 된다. NULLIF (A, B) : NULL로 해라. IF 만약에 A가 B이면! IFNULL (A, B) : IF 만약에 A가 NULL 이면 B해라! SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '%경기%' ORDER BY WAREHOUSE_ID ; 이름이 없는 동물의..
[SQL 코딩테스트] 프로그래머스 SUM, MAX, MIN 정답 오늘도 쉬웠으면... 하는 바램을 안고 3일차 시작! 가격이 제일 비싼 식품의 정보 출력하기 #SUBQUARY #MAX 서브쿼리를 활용해야 하는 MAX 문제! MAX로 불러온 값에는 그 행의 값 '하나'밖에 없기 때문에 'PRICE = '을 걸어 조건을 준다고 이해하면 된다. SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) ; 가장 비싼 상품 구하기 #MAX 그러니까 이런 문제는 좀 1번에 넣으라고..? 레벨을 0으로 표기하던지...^^ SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT ; 최댓값 구하기 #MAX SELECT MAX(DATETIME) FROM ANIMAL_INS ; 최..
[SQL 코딩테스트] 프로그래머스 SELECT 정답 (2) 두 번째 날. 다른거 하기 싫어서 코딩테스트로 도망 옴(?) 아직까지는 재밌다는 뜻. 오늘은 실제로 시간이 얼마나 걸렸는지 재보려고 한다. 재구매가 일어난 상품과 회원 리스트 구하기 #HAVING WHERE절이 아닌 HAVING절에서 조건 걸기! SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(PRODUCT_ID) 1 ORDER BY USER_ID ASC, PRODUCT_ID DESC ; 모든 레코드 조회하기 #ORDERBY 너무 쉬워서 당황한 문제... 이런건 1번에 넣어달라구? SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID ; 오프라인/온라인 판매 데이터 통합하기 ..
[SQL 코딩테스트] 프로그래머스 SELECT 정답 (1) SQL 스터디를 시작했다. 매일 10문제 내외로 풀어보는 프로그래머스와 리트코드 SQL 문제 도장깨기! ​ 9개월만에 다시 손을 대보려니 깜깜하다. 다 까먹었다. 작년에 그렇게 열심히 했는데... 안 잊어먹게 꾸준히 쓸걸 시간이 너무 아까웠다. 이제부터 다시 시작이지 뭐. ​ 1. 평균 일일 대여 요금 구하기 #AVG ​ 2. 조건에 맞는 도서 리스트 출력하기 #DATE_FORMAT DATE_FORMAT 함수 다 까먹어서 시간이 좀 걸렸다.흑흑. 모르는 게 있으면 유튜브와 챗GPT 적극 활용하기! ​ 3. 12세 이하인 여자 환자 목록 출력하기 #IFNULL #COALESCE ​ 4. 3월에 태어난 여성 회원 목록 출력하기 #ISNOTNULL #DATE_FORMAT GENDER 조건을 빼먹고 실행했더니 ..