[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.
[SQL문법] 집계(SUM,AVG,COUNT), 숫자(TRUNCATE,ROUND) 함수
💡 SELECT 함수(컬럼이름1) , 함수(컬럼이름2) FROM 테이블 ; 1. 집계 함수 SUM() 합계 COUNT() 행 개수 MIN() 최소값 MAX() 최대값 AVG() 평균 ▶ 집계 함수 예제 SELECT SUM(MKT_CAPITALIZATION_USD) AS TOTAL시가총액, COUNT(MKT_CAPITALIZATION_USD) AS COUNT시가총액, MIN(MKT_CAPITALIZATION_USD) MIN시가총액, -- AS생략가능 MAX(MKT_CAPITALIZATION_USD) MAX시가총액, AVG(MKT_CAPITALIZATION_USD) AVG시가총액 FROM STOCK_INFO ; 2. 숫자 함수 TRUNCATE(숫자,N) 소수점 N자리까지 표시 ROUND() 소수점 자리 지정..
2022. 11. 2.