전체 글 33

[내일배움캠프]_달리기반 1-3

SELECT COUNT(SUBSTR(name,1,1)) as name_cut FROM users u where name like '김%' - name컬럼에서 성 부분만 조회/카운트 ,  where 김으로 조건 부여(왜인지 '김'으로 하면 안나오드라)SELECT SUM(name like '김%') as name_cut FROM users u  - sunstr사용안하고 like 사용해서 김**의 수만 합침SELECT count(distinct(user_id)) as name_cnt FROM      users where substr(name,1,1) = '김' - user_id카운트/ name앞글자만 조회하고 거기서 김인 id인 조건부여결론: 상관은 없다 다만 3번째 거는 고유 id의 수를 셈 1,2번은 김..

[내일배움캠프]_사전캠 SQL 퀘스트 5일차

12/344) select o.id, p.name  from products p join orders o on p.id=o.product_id  45) select p.id,        sum(p.price*o.quantity) as all_sales from products p join orders o on p.id=o.product_id  group by 1 order by 2 desc limit 1 46) select p.id,        sum(o.quantity)  from products p join orders o on p.id=o.product_id  group by p.id  47) select p.name  from products p join orders o on p.id=o.pr..

[내일배움캠프]_사전캠 SQL 퀘스트 4일차

38) 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요! SELECT COUNT(D.NAME)  FROM DEPARTMENTS D 39) 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요! SELECT e.name ,        d.name  department FROM employees e inner join departments d  on e.department_id = d.id 40) '기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요! SELECT e.name FROM employees e inner join departments d  on e.department_id = d.id  where d.name = '기술팀' 41) 부서별로 직원 수를 ..

[내일배움캠프]_사전캠 SQL 퀘스트 3일차

30) doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요! select name from doctors  where major = '성형외과' 31) doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요! select major,        count(1) count_of_major from doctors  group by 132) doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요! select count(1) as 5_years_or_more  from doctors  where datediff(curdate(), hire_date) >= 5 * 36533) ..

[내일배움캠프]_사전캠 SQL 퀘스트 2일차

21) lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)select *,        rank() over (order by rating desc) ranking from lol_users 22) lol_users  테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요select name,        join_date from ( select name,        join_date,        rank() over (order by join_date d..

[내일배움캠프]_사전캠 SQL 퀘스트 1일차

1. sparta_emplotees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.select name,            position from sparta_emplotees 2. sparta_emplotees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.select distinct position from sparta_emplotees 3. sparta_emplotees  테이블에서 연봉(salary)이 40000과 60000 사이인 직원들을 선택하는 쿼리를 작성해주세요.select * from sparta_employees where salary between 40000 and 60000 4. sparta_emp..

[내일배움캠프]_사전캠 SQL 5일차

Pivot table : 2개 이상의 기준으로 데이터를 집계할 때, 보기 쉽게 배열하여 보여주는 것을 의미   [업무 시작을 단축시켜 주는 문법(Window Function - RANK, SUM)]- 기본구조 : window_function(argument) over (partition by 그룹 기준 컬럼 order by 정렬 기준)○ window_function : 기능 명을 사용 (sum, avg 와 같이 기능명 있음)○ argument : 함수에 따라 작성하거나 생략○ partition by : 그룹을 나누기 위한 기준○ order by : window function을 적용할 때 정렬 할 컬럼 기준을 작성 [SUM]

[내일배움캠프]_사전캠 SQL 4일차

여러 연산을 한번에 SQL문으로 작성- 여러번의 연산을 수행해야 할 때- 조건문에 연산결과를 사용해야 할 때- 조건에 Quary 결과를 사용하고 싶을 때서로 다른 테이블에 있는 데이터를 한번에 조회하기- 엑셀에 vlookup과 유사- 공통인 테이블이 있어야 가능 ● Left Join 구조- 공통 컬럼 (키값) 을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회 ● Inner Join 구조- 공통 컬럼 (키값) 을 기준으로, 두 테이블 모두에 있는 값만 조회 4주차 숙제- 평균 음식 주문 금액 기준 : 5000이하/~10,000/ ~30,000/ 30,000 초과- 평균 연령 : ~20대/30대/40대/50대 이상 PS.~이 뭘 의미하는지 이해 못해서 해설 살짝봣음... '~'

[내일배움캠프]_사전캠 SQL 3일차

업무상 문자 포멧과 달라 변경이 필요할 시  >replace- replace(변경 할 컬럼, 현재 값, 바꿀 값) >substring(substr)- substr(조회 할 컬러럼, 시작 위치, 글자 수)//글자 수 미작성은 시작 위치 뒤 모든 글자 선택 >concat- concat(붙이고 싶은 값1, 붙이고 싶은 값2, .....)- 값에 substr같이 다른 컬럼 사용가능  조건에 따라 포멧을 달리해야 할 때>if- if(조건, 조건 충족 시, 조건 미충족 시) >case- case when 조건1 then 값(수식)1           when 조건2 then 값(수식)2          else 값(수식)3           end  ##SQL문에 문제가 없는데 오류 발생 시- 아래 예시에서 rat..

[내일배움캠프]_사전캠 SQL 2일차

숫자 연산 기호*합계 : SUM(컬럼)*평균 : AVG (컬럼) *데이터 갯수 : COUNT (컬럼) //컬럼명 대신 1 도는 * 사용가능*몇개의 값을 가지고 있는지 구할때 :  DISTINCT  ex)count(distinct coustmer_id) *최솟값 : MIN(컬럼)*최댓값 : MAX(컬럼) 타입별로 연산 시 Group ByQuery 결과 출력 순서 정렬시 Order By*기본적으로 오름차순 내림차순으로 작성시 뒤에 desc 작성 //구조 순서는 select > from > where > group by > order by