나의 개발 아카이브 모음집
sql 쿼리문 용어정리 본문
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 |