일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- 썸네일 #이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- 쓰레드 #쓰레드풀 #프로세스
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- Today
- Total
요리사에서 IT개발자로
스파르타 코딩클럽(부트캠프) SQL 입문 3장 본문
함수명 : replace
사용방법 : replace(바꿀 컬럼, 현재값, 바꿀 값)
select restaurant_name "원래 상점명",
replace(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"
from food_orders
where restaurant_name like '%Blue Ribbon%'
SELECT addr,
REPLACE(addr, '문곡리', '문가리') "바뀐주소"
FROM food_orders
WHERE addr LIKE '%문곡리%'
함수 : substring(substr)
사용방법 : substr(조회 할 컬럼, 시작 위치, 글자 수)
select addr "원래 주소",
substr(addr, 1, 2) "시도"
from food_orders
where addr like '%서울특별시%'
함수명 : concat
사용방법 : concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은값3, ....)
붙일 수 있는 문자의 종류 : 컬럼, 한글, 영어, 숫자, 기타 특수문자
select restaurant_name "원래 이름",
addr "원래 주소",
concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'
select restaurant_name "원래 이름",
addr "원래 주소",
concat(restaurant_name, '-', cuisine_type)"음식 타입별 음식점",
concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'
서울 지역의 음식 타입별 평균 음식 주문 금액 구하기(출력:'서울', '타입', 평균금액)
SELECT SUBSTR(addr, 1, 2) "지역",
cuisine_type,
AVG(price) "평균 금액"
FROM food_orders
WHERE addr LIKE '서울%'
group by 1, 2
이메일 도메인별 고객 수와 평균 연령 구하기
SELECT SUBSTR(email, 10) "도메인",
count(1) "고객 수",
avg(age) "평균 연령"
from customers
group by 1
[지역(시도)] 음식점이름(음식종류) 컬럼을 만들고 총 주문건수 구하기
SELECT CONCAT('[', SUBSTR(addr, 1, 2), ']', restaurant_name, '(', cuisine_type, ')')"음식점",
COUNT(1) "주문 건수"
FROM food_orders fo
group by 1
조건문 (IF, CASE)
함수명 : if
사용 방법 : if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
select restaurant_name,
cuisine_type "원래 음식 타입",
if(cuisine_type='Korean', '한식', '기타') "음식 타입"
from food_orders
select addr "원래 주소",
if(addr like '%평택군%', replace(addr, '문곡리', '문가리'), addr) "바뀐 주소"
from food_orders
where addr like '%문곡리%'
select substring(if(email like '%gmail%', replace(email, 'gmail', '@gmail'), email), 10) "이메일 도메인",
count(customer_id) "고객 수",
avg(age) "평균 연령"
from customers
group by 1
함수명 : case
사용방법 :
case when 조건1 then 값(수식)1
when 조건2 then 값(수식)2
else 값 (수식)3
end
SELECT CASE when cuisine_type='Korean' THEN '한식'
when cuisine_type IN ('Japanese', 'Chinese')then '아시아'
else '기타'
END "음식타입",
cuisine_type
FROM food_orders
select order_id,
price,
quantity,
case when quantity=1 then price
when quantity>=2 then price/quantity end "음식 단가"
from food_orders
10세 이상, 30세 미만 고객들의 나이와 성별로 그룹 나누기(이름도 같이 출력)
select case when age between 10 and 19 AND gender='male' then '10대 남성'
when age BETWEEN 10 and 19 and gender='female' then '10대 여성'
when age between 20 and 29 and gender='male' then '20대 남성'
when age between 20 and 29 and gender='female'then '20대 여성'
END
name, age, gender
FROM customers
WHERE age BETWEEN 10 and 29
주문 시기와 음식 수를 기반으로 배달할증료 구하기
select restaurant_name,
price/quantity "단가",
cuisine_type,
order_id,
case when (price/quantity <5000) and cuisine_type='Korean' then '한식1'
when (price/quantity between 5000 and 15000) and cuisine_type='Korean' then '한식2'
when (price/quantity > 15000) and cuisine_type='Korean' then '한식3'
when (price/quantity <5000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식1'
when (price/quantity between 5000 and 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식2'
when (price/quantity > 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식3'
when (price/quantity <5000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타1'
when (price/quantity between 5000 and 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타2'
when (price/quantity > 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타3' end "식당 그룹"
from food_orders
지역과 배달시간을 기반으로 배달 수수료 구하기 (식당 이름, 주문 번호 함께 출력)
- 지역 : 서울 , 기타 - 서울일 때 수수료 계산 * 1.1, 기타일 때는 곱하는 값 없다.
- 시간 : 25, 30분 - 25분 초과하면 음식 가격의 5%, 30분 초과하면 음식가격의 10%
SELECT case when delivery_time >30 then price*0.1*if(addr like '%서울%', 1.1, 1)
when delivery_time >25 then price*0.05*if(addr like '%서울%', 1.1, 1)
else 0 end "수수료",
restaurant_name, order_id, price, delivery_time, addr
from food_orders
주문 시기와 음식 수를 기반으로 배달할증료 구하기
- 주문 시기 : 평일 기본료 = 3000/ 주말 기본료 =3500
- 음식 수 : 3개 이하이면 할증 없음/ 3개 초과이면 기본료*1.2
SELECT case when day_of_the_week='weekday' then 3000*if(quantity>3, 1.2, 1)
when day_of_the_week='weekend' then 3500*if(quantity>3, 1.2, 1)
end "배달할증료",
restaurant_name, order_id, day_of_the_week, quantity
from food_orders
- raing은 숫자가 포함되어 있으나 문자형으로 저장되어 있다.
- 문자 숫자를 혼합하여 함수에 사용할 때 데이터 타입을 변경해주어야한다.
cast( if (rating = 'Not given', '1', rating) as decimal) //숫자로 변경
cast(restaurant_name, '-', cast(order_id as char)) // 문자로 변경
'SQL' 카테고리의 다른 글
MySQL 설치 진행 안될 경우, 다시 설치해도 안될 경우, 완전 삭제, 재설치 (0) | 2024.05.15 |
---|---|
스파르타 코딩클럽(부트캠프) SQL 입문 5장 (1) | 2024.04.18 |
스파르타 코딩클럽(부트캠프) SQL 입문 4장 (0) | 2024.04.14 |
스파르타 코딩클럽(부트캠프) SQL 입문 2장 (0) | 2024.03.14 |
스파르타 코딩클럽(부트캠프) SQL 입문 1장 (2) | 2024.03.08 |