일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코딩독학
- 윈도우함수
- Seaborn
- SQL
- sql연습문제
- 영국석사
- numpy
- 나혼자코딩
- 코드잇
- 데이터분석
- 유학생
- 코딩공부
- 행렬
- 로지스틱회귀
- 코드잇 TIL
- HTML
- matplotlib
- 코딩
- CSS
- 선형회귀
- 판다스
- 런던
- 오늘도코드잇
- 경사하강법
- 코드잇TIL
- 다항회귀
- 파이썬
- 머신러닝
- 결정트리
- for반복문
- Today
- Total
목록SQL (24)
영국 척척석사 유학생 일기장👩🏻🎓

1. LEFT, RIGHTLEFT : 왼쪽에서부터 지정된 개수의 문자를 추출하는 함수RIGHT : 오른쪽에서부터 지정된 개수의 문자를 추출하는 함수하나의 열에 너무 많은 정보가 섞여있을때 사용됩니다.즉, 필요한 정보가 해당 열에서 왼쪽이나 오른쪽에 존재할 때 사용됩니다.첫번째 인수 : 분리할 열 그 자체 두번째 인수 : 해당 문자열로부터 추출하려는 문자의 개수 예시 : 학생들의 행동을 분석하기 위해 학생 ID와 급여 정보 추출하기student_information3839581, F, san francisco, 3.7, 1000002842940, M, chicago, 3.8, 1500002842940, F, new york city, 3.9, 2000002849201, M, boston, 3.5, 1250..

1. 문제1) total_amt_usd 판매액이 가장 많은 각 region에서 sales_rep의 name을 제공하십시오.sales_rep과 관련된 total_amt_usd 총계, region 나타내기SELECT s.name rep_name, r.name region_name, SUM(o.total_amt_usd) total_amtFROM sales_reps sJOIN accounts aON a.sales_rep_id = s.idJOIN orders oON o.account_id = a.idJOIN region rON r.id = s.region_idGROUP BY 1,2ORDER BY 3 DESC; 각 region에 대한 total_amt_usd 가져오기SELECT region_name, MAX(tot..

1. 문제각 계정에서 제품을 마케팅하는 데 가장 많이 사용한 (최댓값) 채널은 무엇입니까?같은 채널이 얼마나 자주 사용되었습니까?1) channel과 각 channel이 발생환 횟수 파악하기SELECT a.id, a.name, we.channel, COUNT(*) ctFROM accounts aJOIN web_events weON a.id = we.account_idGROUP BY a.id, a.name, we.channelORDER BY a.id; 2) 위의 서브쿼리를 t1으로 하고 계정 이름별 채널 집계치의 최댓값 구하기SELECT t1.id, t1.name, MAX(ct)FROM (SELECT a.id, a.name, we.channel, COUNT(*) ct FROM accounts a JO..

1. With기존 테이블에서 테이블을 "의사 생성" 하고 메인 쿼리 상단에 임시 테이블을 시각적으로 범위를 정하려는 경우WITH subqurery_name (column_name1, ...) AS (SELECT ..._)SELECT ... 2. Nested임시 테이블이 더 큰 쿼리 내에서 필터 역할을 하도록 할 때 사용WHERE 절 안에 위치SELECT s.s_id, s.s_name, g.final_gradeFROM student s, grades gWHERE s.s_id = g.s_id IN (SELECT final_grade FROM grades g WHERE final_grade > 3.7 );3. Inlinewith와 동일한 방식으로 사용되나 메인 쿼리 위에 있는 임시 테이블 대..

1) CASECASE 문은 항상 SELECT 절에 써야 함CASE는 WHERE, THEN, END 구성요소를 포함해야함ELSE는 다른 CASE 조건을 충족하지 않는 경우를 위한 선택적 구성 요소WHEN 사이에 조건 연산자 (WHERE) 를 사용하여 조건문 만들 수 있음 (AND, OR 사용 가능)예시 SELECT id, account_id, occurred_at, channel, CASE WHEN channel = 'facebook' OR channel = 'direct' THEN 'yes'ELSE 'no' END AS is_facebookFROM web_eventsORDER BY occurred_at SELECT account_id, occurred_at, total,CASE WHEN total > 5..

1) DATE_TRUNC날짜, 시간 열의 특정 부분으로 날짜를 자를 수 있습니다.RESULTINPUT2024-04-01 12:15:01DATE_TRUNC('second', 2024-04-01 12:15:01)2024-04-01 00:00:00DATE_TRUNC('day', 2024-04-01 12:15:01)2024-04-01 00:00:00DATE_TRUNC('month', 2024-04-01 12:15:01)2024-01-01 00:00:00DATE_TRUNC('year', 2024-04-01 12:15:01) 2) DATE_PART하루 중 특정 부분만 빼내고 싶은 경우dow : day of week, 0(일요일)~6(토요일) 사이의 값을 반환RESULTINPUT1DATE_PART('second', ..

1) HAVING집계된 쿼리를 조건에 의해 필터링 할 때 씁니다.WHERE을 쓰지 않은 이유는 WHERE 절은 집계 열에 대한 필터링을 허용하지 않기 때문입니다.이 때 HAVING 을 씁니다.SELECT account_id, SUM(total_amt_usd) sum_total_amt_usdFROM ordersGROUP BY 1HAVING SUM(total_amt_usd) >= 250000 2) 연습문제sales reps 중 자신이 관리하는 계정이 6개 이상인 사람은 몇 명입니까? 34명 21개 이상의 주문이 있는 accounts는 몇 개입니까? 120개 주문이 가장 많은 계정은 어디입니까? Leucadia National 모든 주문에서 총 30,000 USD 초과를 지출한 계정은 어디입니까? 가장 많이..

1) DISTINCTDISTINCT문은 중복된 데이터를 제거하고 데이터를 조회할 때 사용합니다.DISTINCT문을 사용하면 테이블에 중복되는 데이터를 한번만 출력하여 고유 값만을 추출합니다.일부 열을 기준으로 그룹화하고 싶지만 집계를 포함하지 않을 때 GROUP BY 대신 사용합니다.SELECT 문에서 사용되며 SELECT 문에 작성된 모든 열에 대해 고유한 행 제공합니다.SELECT DISTINCT column1, column2, column3FROM table1;아래는 잘못된 예시입니다.SELECT DISTINCT column1, DISTINCT column2, DISTINCT column3FROM table1;결과 예시 2) 연습문제DISTINCT를 사용하여 둘 이상의 지역과 연결된 계정이 있는..

1) GROUP BY 여러 열로 그룹화하기여러 segment에 걸쳐 집계하는데 유용열 이름의 순서는 중요하지 않음. 결과는 상관없이 동일함. GROUP BY절에서 동일 쿼리를 실행하고 순서를 반대로 해도 동일 결과를 얻을 수 있음주의 : 집계에 포함되지 않은 모든 열은 GROUP BY 문에 표시되어야 함. 2) 연습문제각 계정에 대해 주문에서 구매한 각 용지 유형의 평균 금액을 결정합니다. 결과에는 계정 name에 대한 열과 각 계정의 각 용지 유형에 대해 구매한 평균 수량에 대한 열이 있어야 합니다.각 계정에 대해 각 용지 유형에 대해 주문당 평균 지출 금액을 결정합니다. 결과에는 4개의 열이 있어야 합니다. 하나는 계정 name에 대한 열이고 다른 하나는 각 용지 유형에 지출된 평균 금액입니다.각 s..

1) GROUP BY데이터의 하위 세트 내에서 데이터를 집계하는데 사용 가능위의 schema에서는 다른 계정, 다른 지역 또는 다른 영업 담당자에 대한 그룹화aggregator 내에 있지 않은 SELECT 문의 모든 열은 GROUP BY 열에 있어야 함GROUP BY 는 항상 WHERE 과 ORDER BY 사이에 있음ORDER BY는 스프레드시트 소프트웨어에서 SORT처럼 작동오류발생 코드 예GROUP BY로 바르게 고친 예 2) 연습문제가장 먼저 주문한 account(이름)는? 해결책에는 주문의 account name과 date가 있어야 합니다.각 계정의 총 판매액을 usd로 찾습니다. usd 및 회사 name의 각 회사 주문에 대한 총 매출이라는 두 개의 열을 포함해야 합니다. 어떤 channel을 ..