SQL 59

SQL | 동명 동물 수 찾기, NULL 처리하기

https://school.programmers.co.kr/learn/courses/30/lessons/59041 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr동명 동물 수 찾기# 두 번 이상 쓰인 이름, 해당 이름 쓰인 횟수 조회# 이름없는 동물은 제외# 이름 순으로 조회SELECT NAME, COUNT(NAME) COUNTFROM ANIMAL_INSGROUP BY NAME # 이름별 그룹HAVING COUNT(NAME) > 1 # 두 번 이상 쓰인 이름 조건 걸기ORDER BY NAMEhttps://school.programmers.co.kr/learn/courses/30/less..

SQL/문제 2025.01.03

SQL 과제

4.동일한 결제수단(payment_type)에서 이루어진 다른 결제의 평균 금액보다 높은 결제들 중에서, 해당 결제가 해당 결제수단의 총 결제 금액 대비 20% 이상을 차지하는 주문을 조회하세요.payment_ratio는 결제 금액이 총 결제 금액에서 차지하는 비율을 소수점 둘째 자리까지 계산해주세요.# 1) 동일 결제수단 별 -> 결제수단끼리 그룹SELECT payment_type, sum(payment_value) payment_value, avg(payment_value) avg_paymentFROM payments p group by payment_type;with a as (SELECT payment_type, sum(payment_value) total_payment_value, avg..

SQL/문제 2025.01.02

SQL | 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krMAX(CASE WHEN START_DATE ='2022-10-16' THEN '대여중' ELSE '대여 가능' END)CASE WHEN COUNT(CASE WHEN START_DATE = '2022-10-16' THEN 1 ELSE NULL END) = 0 THEN '대여 가능' ELSE '대여중' : 10월 16일에 대여중인 자동차 이니까 대여 날짜가 10월 16일보다 작아야 하고..

SQL/문제 2025.01.02

SQL 라이브 세션 5회차

윈도우 함수- over() 절과 함께 사용-- 윈도우 함수 기본문법SELECT 윈도우함수(컬럼1) OVER ( [PARTITION BY 컬럼2] -- 그룹화 [ORDER BY 컬럼3 ASC|DESC] -- 정렬 [ROWS|RANGE BETWEEN A AND B] -- 계산 범위) AS 결과FROM 테이블;진행순서1. 컬럼2를 파티션으로 나눔2. 컬럼3을 정렬3. 정렬된 데이터 내에서 연산범위 설정4. 지정된 범위와 정렬에 따라 윈도우 함수 값 계산윈도우 함수의 특징- 원본 데이터를 유지하면서 계산된 데이터가 별로도 표시됨- 그룹바이처럼 집계함수빼고 싹 묶어야 하는게 아니라 각 행마다 실행되기 때문에 다 묶어도 됨윈도우 함수 실행 순서FROM → ON → JOIN → WHERE → GROU..

SQL/개념 2025.01.02

SQL 라이브 세션 4회차

JOIN- ON 조건을 만족하는 행만 조회- LEFT JOIN : 어떤 데이터가 모두 조회되어야 하는지 생각하면서   -> RIGHT TABLE에 ON 조건 만족하지 않을 경우 NULL 로 표시  -> RIGHT TABLE에 값이 두 개일 경우 LEFT JOIN 중복이 생길 수 있음 - SELF JOIN : 같은 테이블에서 - UNION : 테이블-테이블끼리 수직으로 결합하면서, 정렬 + 중복 제거   (데이터 많으면 성능 저하 될 수 있음)- UNION ALL : 정렬, 중복 제거 안 하고 모두 다 조회서브쿼리 : SELECT(단일값만 반환, 새로운 파생변수를 생성), FROM, JOIN, WHERE절(비교 연산자, 논리 연산자와 함께 사용)에 올 수 있음- 스칼라 : 값- 로우 : 한 칼럼- 테이블 ..

SQL/개념 2025.01.02

SQL | 대여기간, DATE_FORMAT vs YEAR

대여기간 관련 문제 : 대여와 반납이 같은 날 이뤄져도 1일로 치기 때문에 => DATEDIFF(,)+1 !!! DATE_FORMAT(칼럼,'%Y') vs YEAR(칼럼) 차이 : DATE_FORMAT 은 문자열로 반환, YEAR 는 숫자 그래도 ORDER BY 숫자를 기준으로 (혹시 CONCAT으로 문자 묶여 있으면 오류뜸)[INNER] JOIN vs LEFT JOIN : INNER JOIN은 공통된 데이터만 추출하기 때문에 실행 속도가 더 빠름

SQL/개념 2025.01.02

SQL | 즐겨찾기가 가장 많은 식당 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.내 답 : SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) FAVORITESFROM REST_INFOGROUP BY FOOD_TYPEORDER BY..

SQL/문제 2024.12.23

SQL 라이브 세션 3회차

- 최근일수록 시간값이 큼 (1970.1.1 기준으로 시간 계속 흐르고 있으니까)GROUP BY- SELECT 절에 집계함수 빼고는 다 GROUP BY 뒤에 실행됨- 특정 열을 기준으로 데이터를 그룹화한 후 집계함수를 적용SELECT 기준열1, 기준열2, 기준열3, 집계함수(열)FROM 테이블GROUP BY 기준열1, 기준열2, 기준열3; #집계함수 제외하고 select한 칼럼들 다 그룹화해야 오류x- 그룹핑 했을 때 두가지가 왔을 때 ex, GROUP BY 성별 -> 남, 여 : 2그룹     GROUP BY 성별, 혈액형 -> 남(A, B, AB, O), 여(A, B, AB, O) : 8그룹  = 그룹 자체가 달라짐SQL 실행순서FROM → ON → JOIN → WHERE → GROUP BY → ..

SQL/개념 2024.12.23