sql 5

[프로그래머스스쿨] 그룹별 조건에 맞는 식당 목록 출력하기 oracle

https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr MAX(count(review_id))를 이용해서 가장 많은 리뷰수를 구하고이 리뷰수와 동일한 만큼 리뷰를 쓴 사람을 구하면 된다!또한 리뷰를 많이 쓴 사람이 여러 명이므로 in 을 사용해야 한다  select m.member_name, r.review_text, to_char(r.review_date, 'YYYY-MM-DD')from member_profile m inner join rest_re..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 입양 시각 구하기(2) oracle

https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   connect by level 사용법만 알면 쉬운 문제다0~23시까지 더미데이터를 만든 후 left join한 후에시간에 따른 동물수 (group by hour) 구해주기!여기서 주의할 점은 시간을 나타날 때에 0~23시이므로 HH가 아니라 HH24로 포맷팅 해줘야 한다!  select h.hour, count(a.animal_id) as countfrom (select level-1 as hou..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 oracle

똑같은 car_id를 가진 차에 대한 대여 기록이 여러 개 있을 수 있다따라서 11월에 대여 가능한 차를 조회하기 위해서는11월에 대여 불가능한 차(car_id)를 먼저 서브쿼리로 선별한 후에이에 해당하지 않는 차를 not in으로 골라내야 한다!! https://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  select c.car_id, c.car_type, 30*c.daily_fee*(1-p.discount_rate*0.01) as feefrom car..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 상품을 구매한 회원 비율 구하기 oracle

https://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제를 잘못 파악해서 꽤나 오래 걸린 문제2021년에 가입한 사람 중 물건을 구매한 날짜의 년/월을 기준으로 group by를 해야 한다분모에 해당하는 2021년에 가입한 사람 전체수를 어떻게 처리해줘야 할지 잘 떠오르지 않아서테이블을 하나 더 추가한 후에 group by 할 때에 이 컬럼도 추가해줬다..but 다른 사람들 풀이를 찾아보니 select 절에서 서브쿼리로 한번에 처리해주는 것을 보고..

스터디/Algorithm 2024.09.19

[친절한 SQL 튜닝] 1장 데이터 저장 구조 및 I/O 메커니즘

옵티마이저 힌트 SQL 옵티마이저는 순식간에 엄청나게 많은 연산을 한다. 그 과정에 옵티마이저가 사용하는 정보는 다음과 같다.-테이블, 컬럼, 인덱스 구조에 관한 기본 정보-오브텍트 통계: 테이블 통계, 인덱스 통계,  (히스토그램을 포함한) 컬럼 통계-시스템 통계: CPU 속도, Single Block I/O 속도, Multiblock I/O 속도 등-옵티마이저 관련 파라미터 주의사항1. 힌트 안에 인자를 나열할 땐 ','(콤마)를 사용할 수 있지만, 힌트와 힌트 사이에 사용하면 안된다./*+ INDEX(A A_X01) INDEX(B, B_X03) */ -> 모두 유효/*+ INDEX(C), FULL(D) */ -> 첫번째 힌트만 유효2. 테이블을 지정할 때 스키명까지 명시하면 안 된다SELECT /*..