# 전체 테이블 읽기df = pd.read_sql('SELECT * FROM employees', engine)print(f"직원 수: {len(df)}")print(df.head())# 조건 필터링dev_team = pd.read_sql( "SELECT * FROM employees WHERE department = '개발' AND salary > 5000", engine)print(f"\n개발팀 고연봉: {len(dev_team)}명")# 집계 쿼리dept_stats = pd.read_sql(""" SELECT department, COUNT(*) as count, ROUND(AVG(salary), 0) as avg_salary, ROUND(AVG(experience), 1) as avg_experience FROM employees GROUP BY department ORDER BY avg_salary DESC""", engine)print("\n부서별 통계:")print(dept_stats)
# 직원별 주문 현황 조인employee_orders = pd.read_sql(""" SELECT e.name, e.department, e.salary, COUNT(o.order_id) as order_count, COALESCE(SUM(o.amount), 0) as total_amount FROM employees e LEFT JOIN orders o ON e.id = o.employee_id GROUP BY e.id, e.name, e.department, e.salary ORDER BY total_amount DESC LIMIT 10""", engine)print("상위 10명 주문 실적:")print(employee_orders)
# 분석 결과를 새 테이블로 저장analysis_result = pd.read_sql(""" SELECT department, AVG(salary) as avg_salary, COUNT(*) as employee_count FROM employees GROUP BY department""", engine)# 데이터베이스에 저장analysis_result.to_sql( 'department_analysis', engine, if_exists='replace', # 기존 테이블 덮어쓰기 index=False)# 저장 확인verify = pd.read_sql('SELECT * FROM department_analysis', engine)print("저장된 분석 결과:")print(verify)