🤖 사전 캠프 7일차 진행 사항 🤖
- 엑셀보다 쉽고 빠른 SQL 4주차 수업
- 4-1 ~ 4-7
- 숙제
- Java 알고리즘 문제 풀이
엑셀보다 쉽고 빠른 SQL 4주차 수업
1. Subquery
더보기
Subquery가 필요한 경우
- 여러번의 연산을 수행해야 할 때
- 조건문에 연산 결과를 사용해야 할 때
- 조건에 Query 결과를 사용하고 싶을 때
- [실습] 음식점의 지역과 평균 배달시간으로 segmentation 하기
- 테이블? ==> from food_orders
- 컬럼? ==> restaurant_name, addr, delivery_time
- 조건? ==> 없음
- 수식? ==> avg(delivery_time), substring(addr, 1, 2)
- 그룹화 ==> group by restaurant_name, addr
- 평균 배달시간 출력 조건 ==> case when ~
select restaurant_name,
sido,
case when avg_time<=20 then '<=20'
when avg_time>20 and avg_time <=30 then '20<x<=30'
when avg_time>30 then '>30' end time_segment
from
(
select restaurant_name,
substring(addr, 1, 2) sido,
avg(delivery_time) avg_time
from food_orders
group by 1, 2
) a
2. Join
더보기


Join이 필요한 경우
- 여러 테이블에 저장된 데이터를 효과적으로 검색하기 위해 사용
2-1. OUTER JOIN
- 공통 컬럼을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회
- LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력되는 조인
- RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력되는 조인
- FULL OUTER JOIN: 왼쪽 외부 조인과 오른쪽 외부 조인이 합쳐진 것 (MySQL에서는 지원하지 않음)

-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
2-2. INNER JOIN
- 공통 컬럼을 기준으로, 두 테이블 모두에 있는 값만 조회

-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
참고 및 이미지 출처 : https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/
SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)
조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부
hongong.hanbit.co.kr
- [실습] 고객의 주문 식당 조회하기
- 조회 컬럼 : 고객 이름, 연령, 성별, 주문 식당
- 고객 이름으로 정렬 / 중복이 없도록 조회
- 테이블? ==> from food_orders f left join customers c on f.customer_id = c.customer_id
- 컬럼? ==> c.name, c.age, c.gender, f.restaurant_name
- 조건? ==> x
- 정렬? ==> order by c.name
- 중복이 없도록 조회 ==> distinct c.name
select distinct c.name,
c.age,
c.gender,
f.restaurant_name
from food_orders f left join customers c on f.customer_id=c.customer_id
order by c.name
3. 숙제
더보기

식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기
- 평균 음식 주문 금액 기준 : 5,000 이하 / ~10,000 / ~30,000 / 30,000 초과
- 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상
- 두 테이블 모두에 데이터가 있는 경우만 조회, 식당 이름 순으로 오름차순 정렬
- SQL 기본구조 적어보기
- 각 테이블에서 필요한 컬럼 정리하기
- Join 문으로 데이터 조회문 적어보기
- 데이터를 연산해보기
- 연산한 데이터를 segmentation 에 활용하기

Java 알고리즘 문제 풀이
https://mannakingdom.tistory.com/50
백준 Java ) 1463번 1로 만들기
https://www.acmicpc.net/problem/1463 import java.io.*;import java.util.*;public class Main { static Integer[] dp; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n =
mannakingdom.tistory.com
'TIL (Today I Learned)' 카테고리의 다른 글
[TIL] Java 알고리즘 문제 풀이 (24-12-19) (0) | 2024.12.19 |
---|---|
[TIL] MySQL Window Function과 Date타입 포맷팅 (24-12-18) (1) | 2024.12.18 |
[TIL] MySQL 숫자 연산, GROUP BY, ORDER BY, 문자열 연산, 조건문 함수 학습 (24-12-16) (0) | 2024.12.16 |
[TIL] NoSQL_Firebase 설정/적용하기, Github로 배포하기 (24-12-13) (1) | 2024.12.13 |
[TIL] JSON과 javascript fetch함수, Bootstrap 및 Google fonts 적용 과제 (24-12-12) (1) | 2024.12.12 |