내일배움캠프 84

[SQL]SQL반복문_재귀적 CTE(WITH RECURSIVE)

WITH CTE(Common Table Ezpression) : 재귀 쿼리, 계층 구조 쿼리, 크리 구조 쿼리재귀 CTE쿼리란 : 자체 이름을 참조하는 하위 쿼리가 있는 CTE이다. 특히 시리즈 생성이나 계층적 구조의 데이터를 순회할 때 사용된다.MySQL :: MySQL 8.4 Reference Manual :: 15.2.20 WITH (Common Table Expressions)시리즈 생성예시) 1~10까지의 정수 시리즈WITH RECURSIVE natural_sequence AS ( -- 재귀적 공통 테이블을 natural_sequence에 저장 SELECT 1 AS n -- 1을 선택하여 n이라고 정의 UNION ALL -- 두 개의 select 쿼리 결과를 합친다. all은 중복된 값을..

[SQL] null값 대체하기_COALESCE, IFNULL

COALESCE() vs. IFNULL()실무에서는 특정 컬럼이 NULL을 가지면 NULL이 아닌 값으로 대체하기 위해 활용된다.공통점두 함수는 모두 NULL 값을 대체하는 데 사용된다.모두 인자 중에서 처음으로 NULL이 아닌 값을 반환한다.차이점COALESCE여러 인수 처리 → N개다양한 DBMS에서 지원IFNULL단 두개의 인수만 처리 → 2개MySQL 전용함수SELECT COALESCE(NULL, NULL, 5, 10); -- 결과: 5SELECT COALESCE(NULL, 'Fallback', NULL, 'Last Option'); -- 결과: 'Fallback'SELECT IFNULL(NULL, 5); -- 결과: 5SELECT IFNULL('Value', 10); -- 결과: 'Value'

[Python]for, while 반복문 연습문제

for 반복문 연습문제문제 설명자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.제한 조건n은 10,000,000,000이하인 자연수입니다.입출력 예nreturn12345[5,4,3,2,1]n = '12345're = [] # 출력값을 담을 빈 리스트 준비n_str = str(n) # n값을 문자형으로 변경for i in n_str : re.insert(0, int(i)) # 빈 리스트에 0번째 위치에 숫자형 i값을 삽입print(re) #과정['1']['2', '1']['3', '2', '1']['4', '3', '2', '1']['5', '4', '3', '2', '1']  while 반복문 연습문제문제 설..

[TIL]241211_코트카타Lv.4 (복습 필요), 파이썬 3주차 복습

코드카타 66. 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기-- 내가 작성한 쿼리SELECT CONCAT('/home/grep/src/',board_id,'/',file_id,file_name,file_ext) AS 'FILE_PATH'FROM ( SELECT MAX(views),b.board_id,f.file_id,f.file_name,f.file_ext FROM used_goods_board b JOIN used_goods_file f ON b.board_id = f.board_id ORDER BY f.file_id DESC ) sub※ 오답 이유: 조회수가 가장 높은 게시글의 첨부파일이 2개 이상일 수 있음→ 최댓값을 MAX가 아닌 RANK로 찾기-- 1. 조회수 결과를 기준으로 ..

[TIL]241210_코드카타, 데이터 리터러시 강의 1

코드카타 61. 서울에 위치한 식당 목록 출력하기SELECT ri.rest_id, ri.rest_name, ri.food_type, ri.favorites, ri.address, ROUND(AVG(review_score),2) AS SCOREFROM REST_INFO ri JOIN REST_REVIEW rr ON ri.rest_id =rr.rest_idWHERE address LIKE '서울%'GROUP BY ri.rest_idORDER BY score desc, favorites desc; 62. 자동차 대여 기록에서 장기/단기 대여 구분하기SELECT history_id, car_id, DATE_FORMAT(start_date,'%Y-%m-%d') START_DATE..