TIL을 어떤 식으로 작성해야 나한테도 의미가 있고, 학습한 내용을 기억하는 데 도움이 될까 이번 주 내내 고민을 해보았다.
결론적으로는 배운 내용을 빠짐없이 첨부사진과 함께 기록하는 것이 복습하는 데도 효과적일 것이고, 또 누군가에게 보여주었을 때 '이 친구가 이런 식으로 학습했구나' 하는 느낌이 들게 작성해 보려고 한다.
배운 내용: SQL 2주차 강의
1. 두 컬럼을 합치기
SELECT 코드에 1번 컬럼과 2번 컬럼을 표시하고, 그 두 컬럼을 합친 값을 as 를 통해 total_time 이라는 새로운 컬럼을 만들어 표시한다.
2. 합과 평균
SQL 에서 합은 sum, 평균은 avg 를 사용한다 위의 SQL문에서는 1번 컬럼의 총합을 total_food_preparation_time이라는 새로운 컬럼이름으로 표시하였고, 2번 컬럼의 평균값을 avg_delivery_time 이라는 새로운 컬럼이름으로 표시하였다.
3. 나이 평균 실습
age 라는 컬럼에서 평균값을 만들어 averge_of_age 라는 컬럼의 이름으로 SQL문을 작성하였다.
4. 갯수 구하기
SQL에서 갯수를 구하는 코드는 count 이다 count뒤 괄호안에 1을 표시하면 항목이 중복되어도 별개로 모든갯수를 구한다는 의미이고 (distinct + 컬럼명)은 해당 컬럼에서 중복되는 항목은 한가지로 보고 모든 다른 항복의 갯수를 구한다는 의미이다.
쉽게 설명하자면 1번 컬럼에 A,A,B,C 라는 항목이 있는데 count(1) 1번 컬럼을 사용하면 모든 갯수, 총 4개라고 나타날 것이고, count(distinct+ 1번 컬럼)이라고 작성하면 중복되는 A는 하나로 보고, 총 3개라고 나타날 것이다.
5. 갯수 구하기 실습
payments 테이블에서 구매타입별로 갯수를 구하였다. 구매방법은 카드결제, 현금결제 두 가지 방법밖에 없으므로 결과값에 2라고 나타난다.
6. 최대값, 최소값 구하기
SQL문에서 최대값을 구하는 코드는 max, 최소값은 min을 사용한다. 위의 캡처에는 food_orders라는 테이블에서 가격컬럼의 최대값, 최소값을 구하는 과정이다.
7. 주문금액이 30,000원 이상인 주문건수 구하기 실습
where문을 활용하여 가격이 30000원 이상인 주문건수를 모두 구하였다.
8. 한국음식의 가격평균 구하기 실습
where문을 활용하여 한국 음식만을 기준으로 설정하였고 그 한국음식의 가격 평균을 구하였다.
9. 음식타입별로 값을 묶어서 계산하기
이제 group by문을 사용하였다. group by 문은 값을 구할때 어떠한 컬럼을 그룹화 하여 그 컬럼의 각항목별로 결과를 집계할 수 있다. 예를 들어 위 캡처에는 cuisine_type을 그룹으로 묶었는데, 만약에 그룹으로 묶지 않았다면 그냥 모든 가격들을 더한 값이 될 것이다. 위 캡처에는 그룹으로 컬럼을 묶어서 각 항목별로 결과값을 집계하여 한국, 멕시코, 일본 등등 각 항목의 가격합계가 구해지는 것이다.
10. 레스토랑별 음식의 최대값
group by를 활용하여 레스토랑의 이름컬럼을 기준으로 잡고 최대값을 구하였다.
레스토랑 이름 컬럼의 각 항목, 즉 모든 레스토랑의 가장 비싼 가격의 음식을 결과값으로 나타낸다.
11. 결제타입별 가장 최근 결제된 날짜 구하기
group by를 활용하여 pay_type을 기준으로 잡고(카드,현금) 날짜컬럼에 max를 활용하여 최대값을 구하였다,
12. 결과값을 오름차순으로 정렬하는 방법
지금까지는 나온 결과값이 중구난방으로 섞여있었다. 이제는 order by라는 코드를 활용해 오름차순으로 정렬을 해보았다.
기본적으로 오름차순이라 order by문 옆에 컬럼만 적어도 오름차순으로 정렬된다. 만약 내림차순으로 정렬하고 싶다면
order by+컬럼+desc 로 작성하면 된다.
13. 음식점별 최대값을 구하고 오름차순으로 정렬
음식점별로 가격의 최대값을 구하고, order by를 활용하여 나온 결과값이 price를 기준으로 오름차순으로 나타냈다.
14. 고객을 성별과 이름으로 구분하고 성별→이름 순으로 오름차순으로 구하기
이름과 성별 중 성별을 우선순위로 두어 female 기준으로 이름 오름차순, 후에 male 기준으로 이름 오름차순으로 결과값을 도출하였다.
15. 2주차 강의 숙제(음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기)
표시되는 컬럼으로 cusine_type, 가격의 최대값, 가격의 최소값으로 설정하였고, 그룹을 cusine_type으로 묶어서 각 항목별로 결과값이 도출되게 설정하였다. 마지막으로 order by를 사용하여 최소값의 내림차순으로 결과값을 표시를 정리하였다.
처음으로 이런 방식을 사용하여 작성해 보았는데, 한 가지 놀란 점은 생각보다 복습이 매우 잘 되는 것이다.
사실 무엇인가를 완벽하게 배운다는 것은, 직접 배운 것을 누군가에게 설명할 수 있을 정도가 되어야 완벽하게 내 것으로 만들었다고 할 수 있기 때문에 이런 식으로 누군가에게 알려주는 듯한 방향으로 배운 내용을 정리해 보니, 중간중간 다시 한번 배운 것들을 상기시키고 이해하고를 반복하면서 복습에 큰 영향을 주는 것 같다. 비록 TIL 작성 시간은 세네배로 오래 걸리지만 오히려 학습의 일환이라고 생각하니 매우 효과적인 방법인 것 같다.
앞으로도 가능한 날들은 이런 방식으로 TIL 작성을 꾸준히 하도록 노력하겠다.
'내일배움캠프 TIL' 카테고리의 다른 글
사전캠프 3주차 수요일 (0) | 2024.10.16 |
---|---|
사전캠프 2주차 금요일 (0) | 2024.10.11 |
사전캠프 2주차 화요일 (0) | 2024.10.08 |
사전캠프 1주차 금요일 기록 (0) | 2024.10.04 |
사전캠프 1주차 수요일 기록 (0) | 2024.10.02 |