DB/SQLQuery(29)
-
PIVOT, CASE
pivot 후 형태 변환 SELECT * FROM ( SELECT Region, Product, Amount FROM Sales ) PIVOT ( SUM(Amount) FOR Product IN ('Apple', 'Orange') ); Sales 테이블에서 Region, Product, Amount 열을 선택한 후, PIVOT을 사용하여 Product 열의 값('Apple', 'Orange')을 열 이름으로 변환하여 Amount 열의 합계를 계산하면 지역별로 각 제품의 판매량을 나타내는 결과를 얻을 수 있다 SELECT Region, SUM(CASE WHEN Product = 'Apple' THEN Amount ELSE 0 END) AS Apple, SUM(CASE WHEN Product = 'Orang..
2024.03.03 -
파생 속성(Derived Attribute)
파생 속성은 데이터베이스 테이블의 다른 열을 기반으로 계산되어 생성되는 가상의 열이다. 기존의 데이터로부터 새로운 정보를 얻고자 할 때 유용하다. CREATE TABLE Orders ( OrderID INT PRIMARY KEY, ProductID INT, Quantity INT, UnitPrice DECIMAL(10,2), -- 주문 총액을 계산하는 파생 속성 TotalPrice AS (Quantity * UnitPrice) ); TotalPrice는 Quantity와 UnitPrice 열을 곱하여 계산된 결과를 나타내는 파생 속성이다. 파생 속성은 데이터의 특정 측면을 더 쉽게 이해하고 조작할 수 있도록 도와주는데 사용된다. DECIMAL(10,2)은 데이터베이스에서 사용되는 숫자 형식을 정의한다. ..
2024.03.03 -
SUBQUERY : INLINE VIEW 인라인 뷰
FROM 절에 오는 서브쿼리는 다른 테이블이나 뷰로부터 데이터를 가져올 수 있고 서브쿼리를 사용하여 데이터를 동적으로 처리할 수 있다. 서브쿼리를 사용하면 쿼리의 논리를 더 작은 논리 블록으로 분할하여 이해하기 쉽게 만들 수 있다. EX SELECT D.DEPARTMENT_ID, D.DEPARTMENT_NAME, AVG_SALARY FROM ( SELECT DEPARTMENT_ID, ROUND(AVG(SALARY),2) AS AVG_SALARY FROM EMPLOYEES GROUP BY DEPARTMENT_ID ) SUB JOIN DEPARTMENTS D ON SUB.DEPARTMENT_ID = D.DEPARTMENT_ID; 부서별 평균 급여를 계산하는 서브쿼리이다. 먼저 부서별 직원들의 평균을 낸 다음..
2024.03.03 -
IFNULL , NVL
IFNULL 함수는 MySQL에서 사용되는 함수이다. 첫 번째 매개변수가 NULL이 아니면 첫 번째 매개변수를 반환하고, NULL이면 두 번째 매개변수를 반환한다. SELECT IFNULL(column_name, 'Default Value') AS column_alias FROM table_name; NVL은 MySQL에서 사용되는 함수 이다. 첫 번째 매개변수가 NULL이 아니면 첫 번째 매개변수를 반환하고, NULL이면 두 번째 매개변수를 반환한다. SELECT FIRST_NAME, NVL(DEPARTMENT_ID, '') AS NVLTEST FROM EMPLOYEES ORDER BY NVLTEST DESC; SELECT FIRST_NAME, NVL(TO_CHAR(DEPARTMENT_ID), '''N..
2024.03.03 -
RATIO_TO_REPORT, 파티션 별 합계에서 차지하는 비율
ratio_to_report() 함수는 특정 그룹 내에서 각 값의 비율을 계산하는 윈도우 함수이고 그룹화된 데이터에서 각 항목이 전체 그룹에서 차지하는 비율을 계산할 때 유용하다. SELECT D.DEPARTMENT_NAME, COUNT(E.EMPLOYEE_ID) OVER (PARTITION BY E.DEPARTMENT_ID) AS EMPLOYEE_COUNT, COUNT(E.EMPLOYEE_ID) OVER (PARTITION BY E.DEPARTMENT_ID) / COUNT(E.EMPLOYEE_ID) OVER () AS RATIO FROM EMPLOYEES E JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID ORDER BY DBMS_RANDOM.VALU..
2024.03.03 -
집계 함수와 윈도우 함수
SELECT COUNT(ENAME) FROM EMP;This Query aggregate the count of data in the ENAME column of the EMP table.The result is single value representing the total count of data in the ENAME column of the EMP table. 이 쿼리는 EMP 테이블의 ENAME 열에 있는 데이터의 수를 집계한다. 그래서 결과 행은 하나, 단일 값으로, EMP 테이블의 ENAME 열에 있는 데이터의 총 수를 나타낸다. SELECT COUNT(ENAME) OVER () AS EC FROM EMP; This query calculates the count of data in t..
2024.03.03