내일배움캠프/SQL 22

[SQL]Subquery로 여러 번의 연산을 한 번에

Subquery란?내부 쿼리의 결과를 기반으로 데이터를 필터링, 검색 또는 조작하는 데 자주 사용되는 다른 쿼리 내에 포함된 쿼리입니다.출처: https://easyitwanner.tistory.com/274 [IT 시작해보기:티스토리] Subquery가 필요한 경우여러번의 연산을 수행해야 할 때예) 수수료를 부과할 수 있는 시간을 구하고 → 구해진 시간에 주문 금액별로 가중치를 주고 → 가중치를 적용한 결과로 최종 예상 배달비를 계산할 때조건문에 연산 결과를 사용해야 할 때예) 음식 타입별 평균 음식 주문금액 따라 음식비 상/중/하 를 나누고 싶을 때조건에 Query 결과를 사용하고 싶을 때예) 30대 이상이 주문한 결과만 조회하고 싶을 때 Subquery문의 기본 구조select column1, sp..

[SQL]3주차_IF, CASE (조건에 따라 포맷을 다르게 지정하기)

조건에 따라 다른 방법을 적용하고 싶을 때 - If 문기본 구조if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) [실습1] 음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Korean’ 이 아닌 경우에는 ‘기타’ 라고 지정select restaurant_name, cuisine_type "원래 음식 타입", if(cuisine_type='Korean', '한식', '기타') "음식 타입"from food_orders [실습2] 02. 번 실습에서 ‘문곡리’ 가 평택에만 해당될 때, 평택 ‘문곡리’ 만 ‘문가리’ 로 수정select addr "원래 주소", if(addr like '%평택군%', replace(addr, '문곡리', '문가리'), addr) "바뀐..

[SQL]3주차_Query 결과를 바로 사용할 수 없는 경우(REPLACE, SUBSTRING, CONCAT)

REPLACE : 데이터 값을 바꾸고 싶을 때기본 구조replace(바꿀 컬럼, 현재 값, 바꿀 값)  예시1) 최근에 상점 이름이 바뀌었지만 과거 데이터에는 옛날 이름으로 저장되어있어요select restaurant_name "원래 상점명", replace(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"from food_orderswhere restaurant_name like '%Blue Ribbon%' -- 제대로 바뀌었는지 확인하기 위해서 blue ribbon이 들어가 있는 데이터만 추출/* 원래 상점명 컬럼에 들어가 있는 'Blue'를 모두 'Pink'로 변경 예시2) 예전에 ‘문곡리’ 라는 지명이 ‘문가리’ 로 바뀌었어요SELECT addr,REPLACE(..

[SQL]사전캠프과제6

6. 아래와 같은 lol_users(LOL 유저 테이블)이 있습니다.idnameregionratingjoin_date1르탄이한국13002019-06-152배캠이미국15002020-09-013구구이한국14002021-01-074이션이미국13502019-11-151. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위SELECT *, RANK() OVER (PARTITION BY region ORDER BY rating DESC) AS rankFROM lol_usersORDER BY rank; 2. lol..

[SQL]2주차_Distinct, Group by, Order by

스파르타 SQL 강의 2주차DISTINCT (뚜렷이 다른[구별되는], 별개의) : 중복 값을 제거select count(1) count_of_orders, count(distinct customer_id) count_of_customersfrom food_orders/* count(1),count(*)은 전체의 개수를 구하라는 뜻. GROUP BY : 범주별 연산하기select 카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼),fromgroup by 카테고리컬럼(원하는컬럼 아무거나) [실습1] 음식점별 주문 금액 최댓값 조회하기select restaurant_name, MAX(price) max_price from food_ordersGROUP BY restaurant..

728x90