파이썬 기초 + SQL 실습
people = [
{'name': 'bob', 'age': 20, 'score': {'math': 90, 'science': 70}},
{'name': 'carry', 'age': 38, 'score': {'math': 40, 'science': 72}},
{'name': 'smith', 'age': 28, 'score': {'math': 80, 'science': 90}},
{'name': 'john', 'age': 34, 'score': {'math': 75, 'science': 100}}
]
print(people[2]['score']['science']) # 90
짝수 출력, 짝수 개수 세기, 총합 구하기, 최대값 찾기 등 반복 패턴 학습
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
짝수 개수 세기
count = 0
for num in num_list:
if num % 2 == 0:
count += 1
print(count)
주민번호를 입력받아 성별 판별
def check_gender(pin):
num = pin.split('-')[1][0]
if int(num) % 2 == 0:
print('여성')
else:
print('남성')
check_gender('150101-1012345')
✔️ 사용자별 마지막 피드백 날짜
SELECT user_name, MAX(feedback_date)
FROM lol_feedbacks
GROUP BY user_name;
✔️ 피드백을 가장 많이 남긴 Top 3
SELECT user_name, COUNT(*) AS feedback_count
FROM lol_feedbacks
GROUP BY user_name
ORDER BY feedback_count DESC
LIMIT 3;
✔️ 만족도 평균이 가장 높은 날짜
SELECT AVG(satisfaction_score) AS avg_score, feedback_date
FROM lol_feedbacks
GROUP BY feedback_date
ORDER BY avg_score DESC
LIMIT 1;
✔️ 만족도는 높지만, 피드백 수는 적은 날짜 찾기
SELECT feedback_date, AVG(satisfaction_score) AS avg_score, COUNT(*) AS feedback_count
FROM lol_feedbacks
GROUP BY feedback_date
HAVING avg_score >= 4.0
ORDER BY feedback_count ASC, avg_score DESC
LIMIT 3;
파이썬에서 리스트 안의 딕셔너리 접근법과 for문 반복 패턴을 연습하면서, 실제 데이터 구조를 다루는 감각을 익혀갔다.
SQL에서는 날짜 함수와 집계함수를 조합해 실질적인 "Top 분석", "최근 활동", "조건 필터링"을 구현해보면서 실무 감각이 생김.
단순히 쿼리만 쓰는 게 아니라, "무엇을 분석하는지","어떤 데이터를 뽑아야 하는지"를 먼저 알 필요가 있음.
파이썬은 차갑다....
파이썬 리스트/딕셔너리 더 많은 패턴 연습
강의 복습하며 활용법 숙지
SQL에서 JOIN, GROUP BY + HAVING 응용 복습