[SQL 문법] RANK/DENSE_RANK, LAG, 분할 함수 / 테이블 분할
1. 순위함수 SELECT 컬럼이름 , RANK() OVER (PARTITION BY 그룹 이름 ORDER BY 컬럼이름) FROM 테이블이름 1-1. RANK 중복 순위 포함해서 출력 ex) 1,1,3,4,5... 1-2. DENSE_RANK 중복 순위 무시하고 출력 (중간 순위를 비우지 않음) ex) 1,1,2,2,3,4... 1-3. ROW_NUMBER 값에 무관하게 고유한 순위 부여 (ORDER BY 필요) ex) 1,2,3,4,5,6... ✅RANK & DENSE RANK 예제 # RANK SELECT *, RANK() OVER(ORDER BY MKT_CAPITALIZATION_USD) AS 순위 -- MKT기준 오름차순으로 정렬후 순위를 매기는 컬럼 추가 FROM STOCK_INFO; [OUT..
2022. 11. 7.
[SQL문법] GROUP BY / HAVING - MySQL
1. GROUP BY (특정 컬럼을 기준으로 그룹화) 💡 SELECT 칼럼1, 칼럼2, 집계함수 FROM 테이블이름 GROUP BY 칼럼1, 칼럼2 ✅GROUP BY 후, SUM/MAX/AVG 구하기 SELECT REGION, INDCODE, SUM(MKT_CAPITALIZATION_USD), -- 그룹기준으로 MKT를 SUM 해줘 MAX(MKT_CAPITALIZATION_USD), AVG(MKT_CAPITALIZATION_USD) FROM stock_info GROUP BY REGION, INDCODE; -- REGION, INDCODE 기준으로 묶어줘 ✅부서별로 그룹하여 부서번호, 인원수, 급여의 평균, 급여의 합을 조회 SELECT deptno, COUNT(*), ROUND(AVG(sal)) '급여..
2022. 11. 7.