스파르타 33

SQL_4주차_실전에서 유용한 SQL 문법

1) 문자열 (1) 문자열 쪼개보기 -> Substring_index(필드명, 특정 기준 문자, 시작포인트) ✅ 이메일에서 아이디만 가져와보기 # substrinig_index(____, '@',1) -> @ 앞에 있는 문자들을 추출해라 -> 이메일 추출 select user_id ,email, SUBSTRING_INDEX(email,'@',1) from users u ✅ 이메일에서 이메일 도메인만 가져와보기 # substrinig_index(____, '@',-1) -> @ 뒤에 있는 문자들을 추출해라 -> 도메인 추출 select user_id ,email, SUBSTRING_INDEX(email,'@',-1) from users u (2) 문자열 일부만 출력하기 -> Substring(필드명, 시작..

스파르타/SQL 2023.01.16

SQL_4주차_Subquery 연습문제

1) Subquery 연습하기 ✅ Where 절에 들어가는 Subquery 연습해보기 (1) 전체 유저의 포인트의 평균보다 큰 유저들의 데이터 추출하기 select * from point_users pu where point > ( select round(avg(point)) from point_users pu ) (2) 이씨 성을 가진 유저의 포인트의 평균보다 큰 유저들의 데이터 추출하기 # join으로 해결 select * from point_users pu where point > ( select round(avg(point)) from point_users pu inner join users u on u.user_id =pu.user_id where u. name ='이**' ) # Subquer..

스파르타/SQL 2023.01.16

SQL_4주차_Subquery

1) Subquery란? 쿼리 안의 쿼리로, 한 가지 식으로 정리가 가능해져 SQL 쿼리가 훨씬 간단해진다 select u.user_id, u.name, u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method ='kakaopay' ↓ Subquery 이용 select user_id,name,email from users u where user_id in( select user_id from orders o where payment_method ='kakaopay' ) 2) 자주 사용되는 Subquery 유형 Where 에 들어가는 Subquery -> where 필드명 in (subquery) ex) ..

스파르타/SQL 2023.01.13

SQL_3주차_ Union

1) Union이란 select를 두번하는 방식이 아닌 한번에 모아서 보고 싶은 경우 사용 2) 앞선 join 퀴즈에서 나온 8월 1일 이후 구매한 고객들 + 7월에 구매한 고객들을 추가하여 추출하기 ( select '7월' as month, c1.title, c2.week, count(*) as cnt from courses c1 inner join checkins c2 on c1.course_id = c2.course_id inner join orders o on c2.user_id = o.user_id where o.created_at < '2020-08-01' group by c1.title, c2.week ) union all ( select '8월' as month, c1.title, c2.w..

스파르타/SQL 2023.01.12

SQL_3주차_ Left join

1) Left Join이란 ❗️ left join은 어디에 → 뭐를 붙일건지, 순서가 중요! 2) Left Join 언제 사용할까 # 한 쪽 테이블에 없는 데이터를 포함하여 통계를 내고 싶을때 사용 유저 중에, 포인트가 없는 사람(=즉, 시작하지 않은 사람들)의 통계! select u.name, COUNT(*) as cnt from users u left join point_users p on u.user_id = p.user_id where p.user_id is NULL # NULL은 무조건 대문자로 작성 group by u.name 유저 중에, 포인트가 있는 사람(=즉, 시작한 사람들)의 통계! select u.name, COUNT(*) as cnt from users u left join poin..

스파르타/SQL 2023.01.12

SQL_3주차_ join 퀴즈

✅ 결제 수단 별 유저 포인트의 평균값 구해보기 _ round 사용해서 반올림하기 select o.payment_method ,ROUND(AVG(p.point)) as avg_point from point_users p inner join orders o on p.user_id = o.user_id group by o.payment_method ✅ 결제하고 시작하지 않은 유저들을 성씨별로 세어보기 select u.name , COUNT(*) as cnt_name from enrolleds e inner join users u on u.user_id = e.user_id where e.is_registered = 0 group by u.name order by cnt_name desc ✅ 과목 별로 시작하..

스파르타/SQL 2023.01.12

SQL_3주차_ join 기초

1) Join이란? 👉 Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미해요. 예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶어요! 2) Join의 종류 Left Join ex) select * from users u left join point_users p on u.user_id = p.user_id Inner Join # 일종의 교집합 ex) select * from users u inner join point_users p on u.user_id = p.user_id # 각 필드마다 별칭을 붙여 join시 사용 3) Join 연습하기 orders 테이블에 users 테이블 연결해보기..

스파르타/SQL 2023.01.12

파이썬_03주차_ 종목 분석하기

[상장 종목 분석하기] 1) 재미로 하는 시총 TOP 50社 _ 연봉왕 뽑아보기 한 종목에 대해 뽑아보기 # 보수에 해당하는 부분이 문자로 되어있어 정렬할 수 없으니 숫자로 변환 후 (str 사용해서 ' '를 공백으로 인식 -> 그 다음 numeric을 사용해서 모든 숫자들을 숫자로 인식) 다시 내림차순으로 정렬하기 1. 한 종목에 대해 금액을 숫자로 변환하여 내림차순으로 먼저 정렬하기 corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0] data = dart_fss.api.info.indvdl_by_pay(corp_code, '2021','11011') df = pd.DataFrame(data['list']) df = df[['corp_na..

파이썬_03주차_ dart API

1)Data 라이브러리 활용하기 ! pip install dart-fss # 'stock_code'가 none것 제외하고 데이터 추출하기 df = pd.DataFrame(all) df_listed = df[df['stock_code'].notnull()] #stock_code'가 none것 추출하기 df = pd.DataFrame(all) df_non_listed = df[df['stock_code'].isnull()] 2)종목 엑셀로 가져오기 df = pd.DataFrame(all) df_listed = df[df['stock_code'].notnull()] df_non_listed = df[df['stock_code'].isnull()] df_listed.to_excel('상장종목.xlsx') df_..