시간 | 내용 |
---|---|
09:00-10:00 | 코드가타 |
10:00-10:30 | 오전 스크럼 |
10:30-11:00 | 자료 정리 |
11:00-12:00 | 튜터 직무 세션 |
12:00-14:00 | 점심&자료 정리 |
14:00-15:00 | SQL 라이브 세션 |
15:00-18:00 | SQLD 2주차, 3주차 수강 |
18:00-19:00 | 저녁 |
19:00-20:00 | 강의 수강 및 배운 내용 정리 |
20:00-20:30 | 저녁 스크럼 |
20:30-21:00 | TIL 작성 |
21:00-23:00 | 부족한 부분 보충 |
SELECT
b.book_id
, a.author_name
, b.published_date
FROM
book b
LEFT JOIN author a
ON b.author_id = a.author_id
WHERE
b.category LIKE '경제'
ORDER BY
published_date
;
published_date가 YYYY-MM-DD hh:mm:ss 형식인데 확인을 안 하고 그냥 제출해버렸다.
두 번째 풀이 → 정답 처리되었음
SELECT
b.book_id
, a.author_name
, DATE_FORMAT(b.published_date, '%Y-%m-%d') AS published_date
FROM
book b
LEFT JOIN author a
ON b.author_id = a.author_id
WHERE
b.category LIKE '경제'
ORDER BY
published_date
;
b.category = '경제'
로 처리해도 된다고 함SELECT
BOOK_ID
, AUTHOR_NAME
, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATE
FROM
BOOK
INNER JOIN AUTHOR
ON BOOK.CATEGORY = '경제'
and BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
ORDER BY
PUBLISHED_DATE
;
- JOIN에서 WHERE문으로 조건을 걸면 데이터가 많아졌을 때 불필요한 데이터도 JOIN이 들어가 연산이 늦어진다고 함
- 특정 조건인 경우만 JOIN하기 위해서 ON에 조건을 거는 게 좋다고
- ON: JOIN 전 필터링
- WHERE: JOIN 후 필터링
- JOIN보다는 Subquery 쪽으로 먼저 생각해 보면 좋다고 한다.
SELECT
ai.animal_id
, ai.name
FROM
animal_ins ai
LEFT JOIN animal_outs ao
ON ai.animal_id = ao.animal_id
AND ai.datetime > ao.datetime
WHERE
ao.datetime IS NOT NULL
ORDER BY
ai.datetime ASC
;
SELECT
ai.animal_id
, ai.name
FROM
animal_ins ai
LEFT JOIN animal_outs ao
ON ai.animal_id = ao.animal_id
WHERE
ai.datetime > ao.datetime
ORDER BY
ai.datetime ASC
;
ai.datetime>ao.datetime
을 ON 안에 넣으니 ao.datetime이 NULL인 경우도 출력되어서 WHERE절 조건을 추가했는데 다시 생각해 보니 ai.datetime>ao.datetime
을 WHERE절에 넣으면 간단하게 해결되는 거였음※ WHERE와 ON, USING()
※ MySQL 작동순서와 작성순서
- 작동순서(실제 실행 순서)
- FROM → 조회할 테이블 설정
- ON → JOIN 전 필터링
- JOIN → 여러 테이블의 데이터를 하나의 테이블 결과로 만듦
- WHERE → JOIN 후 데이터 조회할 조건문(데이터 추출 조건) 생성
- 기본적인 조건절
- 우선적으로 모든 필드를 조건에 둘 수 있음
- GROUP BY → 컬럼 데이터 그룹화
- HAVING → 그룹화한 데이터의 조건문을 다시 생성
- 항상 GROUP BY 뒤에 위치함
- GROUP BY 된 이후 특정한 필드로 그룹화된 새로운 테이블에 조건 생성
- SELECT → 데이터 추출
- DISTINCT → 중복값 제거
- SELECT절 바로 뒤에 DISTINCT문 넣음
- 범주 확인할 때 사용
- ORDER BY → 순서 정렬 진행
- 작성순서(문법 순서)
- SELECT
- FROM
- WHERE
- GROUP BY
- ORDER BY
SELECT
p.product_code
, SUM(p.price*os.sales_amount) AS sales
FROM
offline_sale AS os
LEFT JOIN product AS p
ON os.product_id = p.product_id
GROUP BY
1
ORDER BY
2 DESC
, 1 ASC
;
SUM(p.price*os.sales_amount) sales
나 (p.price*SUM(os.sales_amount)) sales
로 풀었을 때는 제대로 나오는데 SUM을 빼고 (p.price*os.sales_amount) sales
로 풀면 제대로 안 나옴solution = lambda num1, num2 : num1 * num2
def solution(num1, num2):
#return num1 * num2
i = 0
answer = 0
while i < num2:
answer += num1
i += 1
return answer
데이터 분석 부트캠프 튜터들이 각자의 커리어와 직무 경럼을 공유하며 직무 인사이트 제공