나의 개발 아카이브 모음집

sql 쿼리문 용어정리 본문

개발/데이터베이스

sql 쿼리문 용어정리

깉니 2023. 9. 22. 11:27

SELECT COUNT(1) OVER ()

count(1) 함수는 행에 null값이 포함되어도 수를 계산함

over()절은 윈도위 함수가 전체 결과 집합에 대해 작동ㅇ해야 함을 지정함.

*윈도우함수 : GROUP BY와 비슷하지만, 집계가 없는 것

 

COUNT(*)OVER() : 전체행 카운트
COUNT(*)OVER(PARTITION BY 컬럼) : 그룹단위로 나누어 카운트

 

STDDEV(컬럼)OVER() : 전체행 표준편차
STDDEV(컬럼)OVER(PARTITION BY 컬럼) : 그룹내 표준편차

 

partition by 컬럼 : 그룹 내

 

group by

SELECT 컬럼 FROM 테이블 GROUP BY 컬럼 -- 조건: GROUP BY에서 지정한 컬럼만이 SELECT 컬럼에 올 수 있음

 

/* [ROW_NUMBER] */

SELECT ROW_NUMBER() OVER(ORDER BY 컬럼) FROM 테이블 -- 동일한 값이 있을 경우 순차적으로 순위를 매김

(중복 순위 존재X)

SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) FROM 테이블 -- 정렬 조건 없이 SELECT 해서 나온 결과 그대로 순위를 매김

 

/* [RANK] */

SELECT ROW_NUMBER() OVER(ORDER BY 컬럼) FROM 테이블 -- 중복 순위 적용 후 다음 순위 변동

(2등이 2명일 경우: 2명 모두 2등, 다음 등수는 4등)

 

/* [DENSE_RANK] */

SELECT ROW_NUMBER() OVER(ORDER BY 컬럼) FROM 테이블 -- 중복 순위 적용 후 다음 순위 미변동

(2등이 2명일 경우: 2명 모두 2등, 다음 등수는 3등)

 

ex) SUBSTRING(CONVERT(CHAR(8), IA.REG_DT, 112), 1, 4)

IA.REG_DT 문자열의 첫번째위치부터 4개를 자름 > IA.REG_DT는 해당 열을 길이가 8인 문자열로 변환

 

 <![CDATA[]]> 쿼리문 내 >,<,= 등의 특수문자 사용시에 함께 사용함

 

 

 

'개발 > 데이터베이스' 카테고리의 다른 글

MSSQL 날짜 변환 CONVERT  (0) 2024.07.12
mssql set lock_timeout 5000  (1) 2024.01.04
mssql 재귀쿼리 REPLICATE  (0) 2023.10.25
서브쿼리의 사용  (0) 2023.09.22
테이블 시퀀스 생성 및 사용  (0) 2023.07.28