본문 바로가기
반응형

분류 전체보기160

[postgreSQL] ROW_NUMBER, RANK, DENSE_RANK함수 --13)ROW_NUMBER, RANK, DENSE_RANK함수 --특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 특정 컬럼의 순위를 구하는 함수 --ROW_NUMBER 함수 - 무조건 1,2,3,4,5... --같은 순위가 있어도 무조건 순차적으로 순위를 매긴다.(1,2,3,4,5..순으로) select A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE, ROW_NUMBER() over (partition by B.GROUP_NAME order by A.PRICE DESC) from PRODUCT a inner join PRODUCT_GROUP b on (A.GROUP_ID = B.group_ID); --RANK 함수 - 같은 순위면 같은 순위면서 다음 순위 건너뜀 1,1,.. 2021. 9. 15.
[postgreSQL] [분석함수] AVG() --11)분석함수 --특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 합계 및 카운트 등을 계산 할 수 있는 함수 --집계함수의 한계 select COUNT(*)--집계함수는 집계의 결과만을 출력 from product p ; --분석 함수는 집계의 결과 및 집합(테이블의 내용)을 함께 출력한다. select COUNT(*) OVER(), A.* from product A; ---------------------------------------------------------- --12)AVG()함수 --분석함수 AVG() 부터 본격적으로 분석함수를 학습한다. --그전에 분석함수의 문법에 대해서 간략히 알고 넘어간다. --분석 함수 문법 select C1, 분석함수(C2,C3,...) over .. 2021. 9. 15.
[postgreSQL] [그룹함수] GROUPING SETS, ROLLUP, CUBE --8)GROUPING SET절 --여러개의 UNION ALL을 이용한 SQL과 같은 결과를 도출할 수 있다. select C1, C2, 집계함수(C3) from TABLE_NAME group by grouping sets (--grouping set절을 이용하면 한번에 다양한 기준의 컬럼 조합으로 집계를 구할 수 있다. (C1, C2), (C1), (C2), (), ); select BRAND, SEGMENT, SUM(QUANTITY) from sales s group by grouping sets ( (BRAND,SEGMENT),--BRAND, SEGMENT컬럼 기준으로 합계를 구한다. (BRAND),--BRAND컬럼 기준으로 합계를 구한다. (SEGMENT),--SEGMENT컬럼 기준으로 합계를 구.. 2021. 9. 15.
[postgreSQL] ANY 연산자, ALL 연산자,EXISTS 연산자 --6)ANY 연산자 --값을 서브 쿼리에 의해 반환된 값 집합과 비교한다. ANY 연산자는 서브쿼리의 값이 어떠한 값이라도 --만족을 하면 조건이 성립된다. SELECT TITLE, LENGTH FROM FILM F WHERE LENGTH >= ANY--영화 분류별 사영시간이 가장 긴 영화의 제목 (--및 상영시간을 구함. SELECT MAX(LENGTH)--영화 분류별 상영시간이 가장 긴 상영시간을 구함 FROM FILM A, FILM_CATEGORY B WHERE A.FILM_ID = B.FILM_ID GROUP BY B.CATEGORY_ID ); --ANY가 없다면?SQL에러가 발생한다. --이경우에 서브쿼리의 반환되는 집합은 단 한건이어야 한다. SELECT TITLE, LENGTH FROM F.. 2021. 9. 15.
[postgreSQL] 서브 쿼리 종류 --5)서브 쿼리 --SQL문 내에서 메인쿼리가 아닌 하위에 존재하는 쿼리를 만한다. --서브쿼리를 활용함으로써 다양한 결과를 도출 할 수있다. --RENTAL_RATE의 평균구하기 SELECT AVG(RENTAL_RATE) FROM FILM; --RENTAL_RATE의 평균 보다 큰 RENTAL_RATE집합 구하기 SELECT FILM_ID, TITLE, RENTAL_RATE FROM FILM F WHERE RENTAL_RATE > 2.98; --위 2개의 SQL을 결합하여 하나의 SQL문으로 결과를 도출할수 없을까? --있다! 중첩 서브쿼리,인라인 뷰, 스칼라 서브쿼리가 존재한다. --(1)중첩 서브쿼리 -> WHERE 절에 존재 SELECT FILM_ID, TITLE, RENTAL_RATE FROM.. 2021. 9. 14.
[postgreSQL] INTERSECT, EXCEPT --3)INTERSECT 연산자 --두 개 이상의 SELECT문들의 결과 집합을 하나의 결과 집합으로 결합한다. --즉 테이블1과 테이블2의 교집합을 리턴 SELECT COLUMN_1_1, COLUMN_1_2 --두 개의 SELECT문 간 컬럼의 개수는 동일해야하고 --해당 순서의 열에는 서로 호환되는 데이터 유형이어야한다. FROM TABLE_NAME_1 INTERSECT SELECT COLUMN_2_1, COLUMN_2_2 FROM TABLE_NAME_2; select EMPLOYEE_ID from keys k intersect select employee_id from HIPOS; --실무에서 많이쓰이지 않음 --왜냐면 INNER JOIN과 결과가 동일하기 때문 select A.EMPLOYEE_ID.. 2021. 9. 14.
반응형