SQL 17

[SQL 문법 - 주문량이 많은 아이스크림들 조회하기]

[문제 URL]https://school.programmers.co.kr/learn/courses/30/lessons/133027 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 사용 문법 1) 맛을 기준으로 outer join을 해야 하기에 (SHIPMENT-ID 기준으로 두 테이블 간에 중복 없는 게 있어서) union all 결합을 해줌. 2) 랭킹을 위한 sum(토탈 오더)을 order by 에서 처리해준다.2. 알게 된 것- mysql은 pull outer join을 지원하지 않는다. 따라서 union과 union all을 사용하는데, all은 중복제거가 안된다. 따라서 조금 더 빠르다. ..

[SQL 문법 - FrontEnd 개발자 찾기]

[문제 URL]https://school.programmers.co.kr/learn/courses/30/lessons/276035 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 사용 문법 1) code를 중심으로 join을 해준다. 2) join 시, 비트연산자를 해준다 (& : and) - 개발자가 가지고 있는 코드와 스킬 코드를 전부 파악해야 하니까. 3) Front End 기술 스택만 Where 절로 조건 잡아주고 4) 한 사람 당 기술이 여러가지 일 수 있는데, 여기에서는 Front End 기술만 가지고 있으면 되니까 중복을 Select절에서 제거 해준다.(DISTINCT) 5)  id로 ..

SQL/JOIN 2025.02.17

[SQL 문법 - 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기]

[문제 URL]https://school.programmers.co.kr/learn/courses/30/lessons/298519 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 사용 문법 1) Group by 사용하는 건 간단하다. having 절에서 평균 33 이상인 물고기를 조건으로 가져가는 것. 2) IFNULL 값을 활용해서 null 처리를 해준다. 2. 알게 된 것 1) avg를 할 때, null 값은 count가 안돼서 sum()/count(*) 로 해줘야 하는데, IFNULL을 통해 컬럼이 null 일 경우 처리를 해줄 수 있다.  2) avg()함수 안에서 ifnull을 사용하면 된..

SQL/GROUP BY 2025.02.14

[SQL 문법 - 조건에 맞는 사용자와 총 거래금액 조회하기]

[문제 URL]코딩테스트 연습 - 조건에 맞는 사용자와 총 거래금액 조회하기 | 프로그래머스 스쿨 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 사용 문법 1) WRITER-ID와 USER_ID의 JOIN을 해주고,  2) GROUP BY를 해주는 데 HAVING절로 조건인 70만원 이상을 해준다. 3) 특히, 완료된!! 거래가 조건이라서 WHERE 절에 'DONE'을 반드시 해줘야 한다. 2. 알게 된 것 1) 매번 반복되는 실수이기도 하는데, 오랜만에 SQL을 풀다보면 GROUP BY 절로 묶었다면 SELECT에서 해당 컬럼과 집계함수밖에 사용 못한다는 점이다. 이점을 분명히 알아야 빠르게 풀..

SQL/GROUP BY 2025.02.13

[SQL 문법 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기]

[문제 URL]코딩테스트 연습 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 | 프로그래머스 스쿨 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 사용 문법 1) group by로 자동차 ID 별로 나눠주고 2) CASE WHEN ..THEN..ELSE..END 를 사용해서 특정 기간에 해당하는 지 파악 2. 알게 된 것 1) SELECT 의 MAX(연산자)를 하면, 연산자의 값에 해당하면 1을 반환하고, 해당하지 않으면 0을 반환한다 는 것을 배웠다. 3. 문제 풀이# SELECT값에서 MAX(연산자)는 연산자 값이 맞으면 1, 틀리면 0을 나타내줌.SELECT CAR_ID, CAS..

SQL/GROUP BY 2025.02.13