TIL. (Today I Learned)
Day21. SQLD HAVING / ORDER BY / TIL. 20240514
체대이터
2024. 5. 14. 21:51
To do list.
-코드카타
-SQLD 10문제
-SQLD 8강
-데이터 전처리 세션 복습
[SQLD 8강]
HAVING절
- HAVING 절HAVING절은 WHERE절과 같이 특정 조건을 만족하는 결과 데이터만 표시를 할 수 있으나, 집계된 결과에 대해 사용한다는 것이 특징
- 집계된 결과를 기준으로 조건이 필요한 경우 HAVING 절을 활용
- WHERE 절과 비슷하지만 그룹을 나타내는 결과의 행에 조건이 적용된다는 점에서 차이가 있음
- GROUP BY 절과 함께 사용하여 특정한 제한 조건의 그룹화된 내용을 필터링
기본구조
SELECT [DISTINCT] 칼럼명 [ALIAS명]
FROM 테이블명
[WHERE 조건식]
[GROUP BY 칼럼이나 표현식]
[HAVING 그룹조건식] ;
집계 함수와 NULL
조회 결과 중에서 NULL 이 있는 경우 집계 연산을 하기 위해 NVL 혹은 ISNULL 함수를 사용하여 0으로 변경할 수 있음
다만, 이 함수를 집계 함수 내부에 넣어 사용하는 경우에는 불필요한 부하가 발생
다행히 집계 함수는 NVL, ISNULL 과 같은 함수를 내부에서 사용하지 않아도 NULL 데이터는 집계 함수의 대상에서 제외하고 함수 연산을 처리
(단, COUNT(*) 는 NULL 을 포함하여 모든 칼럼을 계산해서 제외)
ORDER BY
ORDER BY 절은 SQL 문장으로 조회되는 데이터들을 특정 칼럼을 기준으로 정렬하여 출력
데이터 별 오름차순 정렬 기준
1)숫자는 작은 값부터 정렬
2)날짜는 과거 날짜부터 정렬
- Oracle에서는 NULL을 가장 큰 값으로 간주
- SQL Server는 NULL을 가장 작은 값으로 간주
SQL 실행순서(+ORDER BY 포함)
Check point.
.head()
데이터를 N개 행까지 보여줍니다.
Python
복사
data.head() # head()은 기본 5개 행에 대한 데이터를 보여줌 data.head(3) # ()안에 숫자만큼 데이터를 보여줌

.Info()
데이터의 정보를 파악합니다. (인덱스, 컬럼명, 컬럼의 데이터 개수, 데이터 타입)
Python
복사
data.info() # null 값을 확인할때도 활용

.describe()
데이터의 기초통계량을 확인합니다. (개수, 평균, 표준편차, 사분위, 중앙값)
Python
복사
data.describe() # 숫자값에 대해서만 기초통계량 확인이 가능합니다.
.iloc[로우,컬럼] : 인덱스 번호로 선택
.loc[로우,컬럼] : 이름으로 선택
회고
데이터 전처리 베이직 과제를 푸는데 있어서 기본 매서드들이 한번에 잘 떠오르지 않아 당황했었다. 쉬운 것이라 생각하고 빠르게 넘어갔는데 역시나 복습으로 자주자주 체크해줘야겠다.. 앞으로 복잡한 구문과 시간이 꽤 걸리는 RAW데이터 처리를 위해 기본에 충실해서 공부해야 할 필요성을 느낀 오늘이다.