[SQLD 2-02] ★SELECT 1 FROM T2★DISTINCT(중복제거)★MINUS★집계함수 ROLLUP , CUBE,GROUPING SETS★
2023. 3. 18. 16:12
728x90
반응형
1. SELECT 1 FROM T2
SELECT * FROM T2;
SELECT 1 FROM T2 X;
2. DISTINCT(중복제거) , MINUS
SELECT * FROM T1;
SELECT DISTINCT A.C1 FROM T1 A
SELECT C1 FROM T1 MINUS SELECT C1 FROM T2;
==> MINUS 의 경우 중복제거
3. 테이블 데이터 변경하기
UPDATE T1
SET C1 = CASE
WHEN C1 = 1 AND ROWNUM = 1 THEN 1
WHEN C1 = 1 AND ROWNUM = 2 THEN 2
ELSE 2
END;
==> ROWNUM을 활용하여 T1 테이블 값 변경하기
SELECT ROWNUM, T1.*
FROM T1;
4. ROLLUP , CUBE , GROUPING SETS
CREATE TABLE T1 (
C1 VARCHAR2(1),
C2 DATE,
C3 NUMBER(1)
);
INSERT INTO T1 (C1, C2, C3) VALUES ('A', TO_DATE('2050-01-01', 'YYYY-MM-DD'), 1);
INSERT INTO T1 (C1, C2, C3) VALUES ('A', TO_DATE('2050-01-02', 'YYYY-MM-DD'), 1);
INSERT INTO T1 (C1, C2, C3) VALUES ('B', TO_DATE('2050-01-01', 'YYYY-MM-DD'), 1);
INSERT INTO T1 (C1, C2, C3) VALUES ('B', TO_DATE('2050-01-02', 'YYYY-MM-DD'), 1);
INSERT INTO T1 (C1, C2, C3) VALUES ('C', TO_DATE('2050-01-01', 'YYYY-MM-DD'), 1);
INSERT INTO T1 (C1, C2, C3) VALUES ('C', TO_DATE('2050-01-02', 'YYYY-MM-DD'), 1);
SELECT C1 , C2 , SUM(C3) AS C3 FROM T1 GROUP BY ROLLUP(C2, C1);
ROLLUP 소계 ==> (C2 , C1) , C2 , () 로 집계
SELECT C1 , C2 , SUM(C3) AS C3 FROM T1 GROUP BY ROLLUP( (C1, C2));
ROLLUP 소계 ==> (C1 , C2) , () 로 집계
==> 괄호로 묶기
SELECT C1 , C2 , SUM(C3) AS C3 FROM T1 GROUP BY CUBE(C1, C2);
CUBE 소계 ==> (C1 , C1) , C1 , C2 , () 로 집계
SELECT C1 , C2 , SUM(C3) AS C3 FROM T1 GROUP BY GROUPING SETS ( (C1, C2) , C1
GROUPING SETS 소계 ==> (C1 , C2) ,C1 ==> 순서대로
5. RANK , DENSE_RANK
RANK() ==> 동일순위 허용 0 ==> 1 2 2 4
DENSE_RANK() ==> 동일순위 허용 0 ==> 1 2 2 3
https://knowallworld.tistory.com/410
[SQLD 2-01] ★LEFT OUTER JOIN★RANK()★DENSE_RANK()★GROUPBY★LPAD()★UPDATE★UNION★UNION ALL★MINUS★INTERSECT★기
1. LEFT OUTER JOIN CREATE TABLE 고객 ( 고객번호 INT, 고객명 VARCHAR2(50) ); CREATE TABLE 주문 ( 주문번호 INT, 고객번호 INT, 주문금액 INT ); INSERT INTO 고객 (고객번호, 고객명) VALUES (1, '김대원'); INSERT INTO 고객 (고
knowallworld.tistory.com
728x90
반응형