- 2주차 두 번째 날. 오늘도 SQL 특강과 과제가 주어졌고, 저녁에는 학습법 관련 세션이 있었다.
학습 내용
SQL 작동 순서
SQL # FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY SELECT -- (7) column_1 ,DISTINCT column_2 -- (8) : SELECT 다음 DISTINCT 진행 ,column_3 FROM a -- (1) JOIN b -- (3) ON a.key = b.key -- (2) WHERE -- (4) GROUP BY -- (5) HAVING -- (6) ORDER BY -- (9)
집계함수(sum, avg 등)를 사용할 때, 특정 컬럼을 기준으로 삼을 수는 있으나, 이 컬럼을 GROUP BY로 그룹핑을 해주어야 에러가 나지 않는다.
WHERE 절과 HAVING 절 모두 필터링에 필요한 조건을 적어줄 수 있지만, 작동 순서에 차이가 있다.
- WHERE(4) : GROUP BY(5) 전에 실행된다. 따라서 GROUP BY 실행 전 데이터를 기준으로 필터링한다.
- HAVING(6) : GROUP BY(5) 후에 실행된다. 따라서 GROUP BY가 실행된 결과로 필터링 한다.
- Subquery를 사용하여 where과 having 둘 다 같은 결과를 출력하도록 할 수 있다.
Range함수_Python
Python range(start, stop, step) # 연속된 숫자(int)를 만들어준다. # start에서 시작하지만, 마지막 숫자 stop은 포함하지 않는다. # step : 간격. range(0, 10, 2) 이면 [0, 2, 4, 6, 8] 출력
프로그래머스 문제 중 짝수의 합을 구하는 문제에서 활용
짝수의 합Python # 문제 : 0 < n <= 1000 인 n에 대해 1부터 n까지 짝수만 더하기 # -> 짝수 : 정수, 2로 나누었을 때 나머지가 0 # 따라서 짝수는 정수에 2를 곱해서 표현 가능 # n = 2 * m 일 때, # 2 * ( 1 + 2 + 3 + ... + m)으로 출력되면 문제가 해결될 것 def solution(n): total = sum(range(1, (n // 2) + 1)) # n이 홀수인 경우, m이 버려지게 됨. 따라서 추가. return total * 2
파이썬 문제를 풀 때 구현하려는 논리를 말로 풀어쓴 다음, 필요한 기능이나 함수를 GPT에게 물어보니까 금방 풀 수 있었다.
고찰 & 기타
- 어제보다 시간 활용은 효율적으로 잘 했지만, 갑자기 감기기운 올라와서 자격증 공부를 목표한 만큼 다 하지 못했다.
- 알고리즘 코딩테스트 풀 때, 예전에 썼던 함수가 동일하게 적용 가능한 문제가 있었다. 푼 문제는 전부 노션에 DB로 코드와 함께 기록 중인데, 그래서 덕분에 그 페이지만 훑어보고 해결할 수 있었다. 앞으로도 공부한 기록 DB 관리를 잘 해야겠다.
'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글
[TIL] camp_day9_240425 (1) | 2024.04.25 |
---|---|
[TIL] camp_day8_240424 (0) | 2024.04.24 |
[TIL] camp_day6_240422 (1) | 2024.04.22 |
[TIL] camp_day5_240418 (0) | 2024.04.19 |
[TIL] camp_day4_240418 (0) | 2024.04.18 |