본문 바로가기

반응형

프로그래밍/MSSQL

(76)
[MSSQL] ROLLUP / CUBE / GROUPING SETS 소계 합계 ROLLUP - ROLLUP 함수는 소그룹 간의 소계를 계산한다. - ROLLUP은 GROUP BY의 확장 형태로 사용하기 쉬운데, GROUP BY에 있는 항목들을 오른쪽에서 왼쪽순으로 그룹으로 묶어 집계를 낸다. - GROUP BY a, b, c, d 로 묶은 뒤 ROLLUP 을 적용시켜 주면 -> (a, b, c, d) / (a, b, c) / (a, b) / (a) / () 이런식으로 그룹을 만들어가며 집계를 낸다. 예제 1단계. GROUP BY로 묶은 뒤 SUM SELECT item, SUM(cost) sum FROM sql_test_a GROUP BY item 3단계. ROLLUP 적용 -- 방법1. SELECT item, SUM(cost) sum FROM sql_test_a GROUP BY i..
[MSSQL] SQL Server APPLY 연산자 (테이블 반환 함수와 테이블의 조인) APPLY JOIN 및 서브쿼리, 커서를 대체할 수 있는 APPLY에 대해 알아보자 APPLY 연산자를 사용하면 쿼리의 외부 테이블 식에서 반환한 각 행에 대해 테이블 반환함수를 호출할 수 있다. APPLY 연산자에는 CROSS APPLY와 OUTER APPLY가 있다. CROSS APPLY 테이블 반환 함수로부터 결과 집합을 생성하는 외부 테이블의 행만 반환한다. OUTER APPLY 테이블 반환 함수로부터 결과 집합을 생성하는 행과 그렇지 않은 행을 모두 반환한다. 예제 다음의 값을 갖고 있는 테이블 TABLE_A가 있다. ID NAME YYMMDD 1 손꽁쥐 20001020 2 우바보 19550929 3 윤박사 19840303 그리고 FN_GET_INFO라는 테이블 반환함수가 있다. 해당 함수는 인..
[MSSQL] SQL Server FK (외래키) 설정 외래키 Foreign Key 외래키 생성 -- 테이블 생성 시 FK 설정 CREATE TABLE 테이블명 ( 컬럼 속성 , CONSTRAINT FK명 FOREIGN KEY (FK설정할컬럼) REFERENCES 참조할 테이블(참조할 테이블의 컬럼) 옵션 ) -- 기존 테이블 FK 설정 ALTER TABLE 테이블명 ADD CONSTRAINT FK명 FOREIGN KEY (FK설정할 컬럼) REFERENCES 참조할 테이블(참조할 테이블의 컬럼) 옵션 옵션 -- Master : 참조 대상 테이블 / Child : FK 생성 테이블 -- CASCADE : Master 삭제 시 Child 같이 삭제 CONSTRAINT FK_TEMP2_FID FOREIGN KEY (FID) REFERENCES TEMP(ID) O..
MSSQL 간단 정리 요약 사전 1. 데이타검색 - SELECT, ALIASES, TOP, DISTINCT, WHERE, ORDER BY2. 조건 연산자 - 부등호, AND/OR/NOT, NULL, BETWEEN, IN, LIKE, ALL/ANY/SOME3. 집합 연산자 - UNION, INTERSECT, EXCEPT4. 그룹- GROUP BY, HAVING, PARTITION BY, ROLLUP/CUBE, PIVOT/UNPIVOT5. 순위 함수 - ROW_NUMBER, RANK, DENSE_RANK6. NULL 함수 - NULLIF, ISNULL, COALESCE7. 집계 함수 - MAX/MIN, COUNT/AVG/SUM, COMPUTE8. 문자열 함수 - ASCII/CHAR, REPLACE/STUFF/UPPER/LOWER/REVER..
[MSSQL] 일별 누적 접속자 통계 구하기 (누적 합계) 일별 누적 접속자 통계 구하기 문제 사용자 접속기록을 관리하는 테이블이 있다. 사용자가 접속할 때 마다 기록이 되기 때문에 동일 사용자가 하루에 여러번 기록될 수 있다. 이 기록을 토대로 일별 접속 현황 통계자료를 작성해 보려고 한다. 접속일자를 기준으로 다음 4가지 통계를 한 화면에 보여주는 쿼리를 작성해보자 1. 접속건수 : 접속 기록을 일별로 카운트한다. 2. 접속자수 : 동일 사용자는 한 번만 카운트한다. 3. 누적접속건수 : 현재일까지의 누적 건수를 카운트한다. 4. 누적접속자수 : 현재일까지의 누적 접속자수를 카운트한다. 원본 데이터 CREATE TABLE t2 (dt VARCHAR(8), id INT) INSERT INTO t2 SELECT '20150801', 1 id UNION ALL S..

반응형