전체 글 139

[ORACLE] ROLLUP

ROLLUP 소계를 구하는 함수 - 방법1 : GROUP BY ROLLUP(그룹지을 컬럼) SELECT COMPANY, SUM(BONUS) FROM COMPANY GROUP BY COMPANY; --모든 회사 보너스 총 합계 SELECT COMPANY, SUM(BONUS) FROM COMPANY GROUP BY ROLLUP(COMPANY); --회사별 보너스의 합계를 알 수 있음 SELECT COMPANY, DEPT, SUM(BONUS) FROM COMPANY GROUP BY ROLLUP(DEPT); --부서별 보너스의 합계를 알 수 있음 SELECT COMPANY, DEPT, POSITION, SUM(BONUS) FROM COMPANY GROUP BY ROLLUP(DEPT, POSITION); --각 ..

[ORACLE] ROWID를 이용하여 중복데이터 조회 및 제거

SELECT CLASS, NAME, GENDER, GRADE FROM STUDENT a WHERE 1 = 1 AND ROWID > ANY (SELECT ROWID FROM STUDENT b WHERE 1 = 1 AND a.NAME = b.NAME) 중복 데이터 중, 가장 최근에 등록되어진 데이터를 제외하고 삭제하고 싶다면? SELECT CLASS, NAME, GENDER, GRADE FROM STUDENT a WHERE 1 = 1 AND ROWID < (SELECT MAX(ROWID) FROM STUDENT b WHERE a.NAME = b.NAME); DELETE FROM STUDENT a WHERE 1 = 1 AND ROWID < (SELECT MAX(ROWID) FROM STUDENT b WHERE..

[MSSQL] PIVOT을 이용한 세로 데이터 가로 출력 (+UNPIVOT)

PIVOT, UNPIVOT을 이용하자! PIVOT : 행렬 변환 SELECT 컬럼 FROM 테이블 PIVOT([집계함수]([집계컬럼명]) FOR [대상컬럼명] IN ([컬럼이될값])) AS 피벗테이블 SELECT * FROM TABLE_A PIVOT(SUM(점수) --점수 집계를 위해서 FOR 반 IN ([1반],[2반])) AS PVT --'반' 칼럼에 있는 1,2반 데이터를 칼럼으로 변경해줘 UNPIVOT SELECT [학년], [반], [점수] FROM TABLE_A UNPIVOT([점수] FOR 반 IN ([1반], [2반]))AS UNPVT 출처 - https://ggmouse.tistory.com/128

📒 Database/Mssql 2021.10.25

[MSSQL] GROUP BY, DISTINCT절

GROUP BY 데이터 조회 시, 조회 결과를 그룹으로 묶어 결과 값 추출 DISTINCT 조회결과를 그룹으로 묶어서 결과 값 추출. 주로 UNIQUE한 컬럼 조회할 경우에 사용함 공통점과 차이점 GROUP BY와 DISTINCT절 모두, 데이터를 그룹지어 보여준다는 것에 공통점이 있다. 차이점은, GROUP BY는 결과를 정렬해서 표현하고 DISTINCT는 결과를 정렬해서 표현하지 않는다. 그렇기 때문에, DISTINCT가 GROUP BY보다 속도가 빠르다. SELECT 컬렴 FROM 테이블 GROUP BY 컬럼 --GROUP BY (조건문은 HAVING 사용) SELECT DISTINCT 컬럼명 FROM 테이블 --DISTINCT SELECT AGE FROM TABLE_TEMP GROUP BY AGE..

📒 Database/Mssql 2021.10.22

[DB기초] DBMS란?

DBMS(database mangement system) 데이터베이스 관리 시스템. 다수의 사용자들이 데이터베이스 내 데이터를 접근할 수 있도록 하는 소프트웨어 도구의 집합이다. 장점 1. 자료의 통합성 증진 - DBMS는 자료와의 관계성을 정의하기 때문에 자료 통합이 증진된다. 2. 데이터 접근성 용이 3. 데이터 통제 강화 3. 프로그램을 쉽게 개발하고 관리할 수 있다. 4. 보완 강화 DBMS 종류 1. Oracle - 오라클 사에서 개발 - 다양한 운영체제에 설치가 가능하다. - mssql, mysql보다 대량의 데이터를 처리하기 용이하다. - 글로벌 DB시장 점유율 1위 - 비공개 소스 2. Mysql - Mysql 사에서 개발 - 다양한 운영체제에 설치가 가능하다. - 오픈 소스 - 다수의 중..

📒 Database 2021.10.22

[MSSQL] STUFF와 FOR XML PATH를 이용하여 문자열 합치기

STUFF : 문자열에서 시작위치와 크기를 지정하여서 원하는 문자열로 대체. 비슷한 개념으로는 REPLACE SUTFF('문자열', 시작위치, 크기, '대체문자열) FOR XML : 쿼리의 실행 결과를 XML형식으로 만들어준다. [모드] 1. RAW : 쿼리 결과를 사용하여, 결과 집합의 각 행 요소 태그로 일반 식별자를 갖는 XML 요소로 변환. 행 집합의 각각의 행마다, SELECT문으로 반환되는 단일 행이 생성. 2. AUTO : 단순하게 중첩된 XML 트리로 쿼리 결과 반환 3. EXPLICIT : XML 결과 값의 특성와 요소를 혼합하고, 추가 중첩을 사용하여 나타낼 수 있다. 4. PATH : EXPLICIT 모드의 기능을 조금 더 간결하게 이용할 수 있다. 예시 SELECT STUFF(( S..

📒 Database/Mssql 2021.10.22
반응형