3일 차: 데이터 과학을 위한 고급 SQL
이 블로그에는 SQL 및 SQL의 집계 중요 키워드(Union, Union all, Group By, Order By, Holding, Case 문)가 포함되어 있습니다.
안녕하세요 여러분. 모두 잘 되길 바랍니다. 기본에서 고급으로 전환하는 SQL에 대한 세 번째 블로그입니다. 한번 읽어보세요.
그룹화 기준
GROUP BY 문은 "각 국가의 고객 수 찾기"와 같이 동일한 값을 가진 행을 요약 행으로 그룹화합니다 . GROUP BY 문은 종종 집계 함수( COUNT() , MAX() , MIN() , SUM() , AVG() )와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화합니다.
갖는 것으로 그룹화
키워드를 집계 함수와 함께 사용할 수 없기 때문에 절이 HAVINGSQL에 추가되었습니다 .WHERE
주문
Order by 절은 데이터가 오름차순 또는 내림차순으로 필요할 때 사용됩니다.
. 오름차순 정렬(데이터를 오름차순으로 표시)
. 내림차순 정렬(데이터를 내림차순으로 표시)
Holding By와 Order By로 그룹화
우리는 condition 을 가진 후에 order by 를 사용해야 합니다.
SQL의 집계
다양한 집계 함수가 있습니다. 집계 함수는 일련의 값에 대해 계산을 수행하고 단일 값을 반환합니다. 를 제외하고 COUNT(*)집계 함수는 null 값을 무시합니다. 집계 함수는 종종 SELECT 문의 GROUP BY 절과 함께 사용됩니다.
다음 상황에서만 집계 함수를 표현식으로 사용하십시오.
- SELECT 문의 선택 목록(하위 쿼리 또는 외부 쿼리).
- HAVING 절.
질문: 그룹화 기준이 집계 함수에서 중요한 이유는 무엇입니까?
SQL의 GROUP BY 문은 일부 기능의 도움을 받아 동일한 데이터를 그룹으로 정렬하는 데 사용됩니다 . 즉, 특정 열의 다른 행에 동일한 값이 있는 경우 이러한 행을 그룹으로 정렬합니다. 중요 사항: GROUP BY 절은 SELECT 문과 함께 사용됩니다.
합집합()
이 SUM()함수는 숫자 열의 총 합계를 반환합니다.
세다()
이 COUNT()함수는 지정된 기준과 일치하는 행 수를 반환합니다.
평균()
이 AVG()함수는 숫자 열의 평균 값을 반환합니다.
분()
이 MIN()함수는 선택한 열의 가장 작은 값을 반환합니다.
최대()
이 MAX()함수는 선택한 열의 가장 큰 값을 반환합니다.
SQL 별칭
SQL 별칭은 테이블 또는 테이블의 열에 임시 이름을 지정하는 데 사용됩니다. 별칭은 종종 열 이름을 더 읽기 쉽게 만드는 데 사용됩니다.
별칭은 키워드로 생성됩니다 AS.
여기에서 lastpurchase는 최신 판매 날짜가 있는 모든 판매원의 별칭입니다.
SQL UNION
연산자 UNION는 둘 이상의 명령문의 결과 집합을 결합하는 데 사용됩니다 SELECT.
SELECT내의 모든 명령문에는UNION동일한 수의 열이 있어야 합니다.- 열의 데이터 유형도 유사해야 합니다.
- 모든 명령문의 열도
SELECT동일한 순서여야 합니다.
select user_id,name from user
union
select guest_user_id,name from Guest;
select user_id,name from user
union all
select guest_user_id,name from Guest;
SQL INTERSECT 연산자는 두 개의 선택 문을 결합하고 두 문에서 공통적인 데이터 집합만 반환합니다 . 간단히 말해서 수학적 교집합 역할을 합니다. 수학에서 A와 B의 교차점은 A와 B 모두에 존재하는 공통 데이터입니다.
select user_id,name from user
Intersect
select guest_user_id,name from Guest;
SQL EXCEPT 절/연산자는 두 SELECT 문을 결합하는 데 사용되며 두 번째 SELECT 문에서 반환되지 않은 첫 번째 SELECT 문에서 행을 반환합니다. 즉, EXCEPT는 두 번째 SELECT 문에서 사용할 수 없는 행만 반환합니다.
UNION 연산자와 마찬가지로 EXCEPT 연산자를 사용할 때도 동일한 규칙이 적용됩니다.
select user_id,name from user
Except
select guest_user_id,name from Guest;
표현식 CASE은 조건을 통과하고 첫 번째 조건이 충족되면 값을 반환합니다(예: if-then-else 문). 따라서 조건이 참이면 읽기를 중지하고 결과를 반환합니다. 참인 조건이 없으면 절의 값을 반환합니다 ELSE.
부분이 없고 ELSE조건이 참이면 NULL을 반환합니다.
## Case statements
select user_id ,age,gender,case when age >= 25 and gender = 'F' then 1 else 0 end from user ;
## Case statement with count
select gender , count(case when gender = 'F' then user_id end) female ,
count(case when gender = 'M' then user_id end) male from user group by 1;
## In one statement
select gender , count(case when gender = 'F' then user_id when gender = 'M' then user_id end) from user group by 1;
## In one statement with more than one condition
select gender , count(case when age >= 25 and gender = 'F' then user_id when age >= 25 and gender = 'M' then user_id end) from user group by 1;
깃허브 : DAY 3 세션
참조 :
- https://www.w3schools.com/sql/default.asp
- https://www.geeksforgeeks.org/
더 많은 데이터 과학 관련 게시물을 보려면 저를 팔로우하세요 !
링크드인 에서 연결하자 !
당신의 성격 NFT를 얻고
당신이 가는 모든 곳에서 당신의 커뮤니티를 찾으세요

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































