전체 글 233

입양 시각 구하기(2) #WITH RECURSIVE , SET함수

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. WITH RECURSIVE 구문 사용 WITH RECURSIVE TIME AS( SELECT 0 AS h UNION ALL SELECT h+1 FROM TIME WHERE h < 23) SELECT h, COUNT(HOUR(DATETIME)) AS 'COUNT' FROM TIME LEFT OUTER JOIN ANIMAL_OUTS ON h=HOUR(DATETIME) GROUP BY h ORDER BY h; ① WITH RECURSIVE TIME AS( # 가상 테이블명 TIME 생성 ② SELE..

SQL 코드카타 2024.04.11

내적 # zip()

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) def solution(a, b): answer = [x*y for x,y in zip(a,b)] result = sum(answer) return result ① answer = [x*y for x,y in zip(a,b)] # zip() 함수를 사용하여 a와 b 리스트를 엮어준다 # 엮은 리스트에서 x 와 y로 임의의 값을 주고 x*y 를 계산해준다 # 계산한 값은 리스트 인수로 반환 ② result = sum(answer)..

정형 데이터 마이닝

데이터 마이닝 : 통계학자와 데이터베이스 학자들이 사용하는 용어 : 거대한 양의 데이터 속에서 유용한 정보를 찾아내는 과정 : 숨겨진 규칙,패턴 등을 찾아내어 의사결정에 활용하는 것이 목적 통계분석과 데이터 마이닝의 차이 : 통계분석 > 가설,가정에 따른 분석 및 검증 : 데이터마이닝 > 가설,검정을 하지 않고 다양한 수리 알고리즘을 이용해 데이터로부터 의미있는 정보를 찾아내는 방법 대표적인 데이터 마이닝 사례 ① 마케팅 및 고객 서비스 : 고객 행동을 분석하고 예측하여 개별 고객에게 맞춤형 마케팅 전략을 구축,상품추천,이탈예측등 ② 금융분야 : 부정 거래 탐지, 고객 신용 위험 평가 ③ 의료 분야 : 질병 진단, 환자 특성 분석 ④ 생산 및 공급망 관리 : 생산 프로세스를 최적화하고 불량률을 줄임 ⑤ ..

ADsP 내용 정리 2024.04.11

2024-04-09

Today 1. ADsP 강의 2. SQL 코드카타 3. 파이썬 코드카타 Today I Learned SQL 리뷰를 가장 많이 작성한 회원의 리뷰를 조회 SELECT member_name, review_text, review_date FROM MEMBER_PROFILE p JOIN rest_review r ON p.member_id=r.member_id WHERE p.member_id = ( SELECT member_id, COUNT(review_id) FROM rest_review GROUP BY member_id ORDER BY 2 DESC LIMIT 1 ) 수월하게 where 절 서브쿼리 작성을 했다고 생각을 했는데 Operand should contain 1 column(s) 예~ 또다시 오류가 ..

TIL 2024.04.09

가운데 글자 가져오기 # 슬라이싱

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. s는 길이가 1 이상, 100이하인 스트링입니다. def solution(s): answer = '' if len(s) % 2 == 0: answer = s[len(s) // 2 - 1 : len(s) //2 + 1] else: answer = s[len(s) // 2] return answer ① if len(s) % 2 == 0: # s 의 길이가 짝수일때 ② answer = s[len(s) // 2 - 1 : len(s) //2 + 1] # 인덱스를 출력하기 위해 len(s)//2 이렇게 나눈 몫으로 인덱스의 값을 반환 중간 값을 구해주기 때문에 2로 나누어준다!! 5..

제일 작은 수 제거하기 # del , remove(), min()

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. def solution(arr): if len(arr)==1: del arr[0] arr.append(-1) elif len(arr)>=2: arr.remove(min(arr)) return arr ① if len(arr)==1: # arr의 길이가 1일 경우 (숫자가 1개만 있을 경우에는 -1 을 반환..

대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요. SELECT MONTH(start_date) MONTH , car_id , COUNT(*) RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE (START_DATE between '2022-08-01'..

SQL 코드카타 2024.04.09