- 통계학
- distinct
- count
- SQL
- Tree
- 완전검색
- DB
- 스택
- Queue
- N:1
- update
- regexp
- 백트래킹
- 이진트리
- Django
- migrations
- 그리디
- outer join
- Article & User
- ORM
- 큐
- Vue
- 트리
- drf
- stack
- 쟝고
- M:N
- delete
- 뷰
- create
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
목록2024/12 (30)
데이터 분석 기술 블로그
ROW_NUMBER 함수란?"ROW_NUMBER()" 함수는 사용되는 윈도우 함수(Window Function) 중 하나로, 특정 정렬 기준에 따라 각 행에 고유한 일련번호를 부여합니다. 동일한 값이 있어도 고유한 번호를 부여하며, 중복 순위는 없습니다.ROW_NUMBER 기본 문법ROW_NUMBER() OVER ([PARTITION BY column] ORDER BY column ASC|DESC) OVER: ROW_NUMBER() 함수가 적용될 데이터의 범위와 정렬 기준을 지정합니다.PARTITION BY column: 데이터를 특정 열로 그룹화하여 그룹별로 행 번호를 매깁니다(옵션).ORDER BY column ASC|DESC: 지정된 열을 기준으로 정렬하여 번호를 매깁니다.ROW_NUMBER 특징 ..
RANK 함수란?"RANK()" 함수는 순위를 매기는 윈도우 함수(Window Function)입니다. 특정 열의 값에 따라 각 행에 순위를 할당합니다. 값이 동일한 경우, 동일한 순위를 부여하며, 그다음 순위는 건너뜁니다(중복 순위 처리).RANK 기본 문법RANK() OVER ([PARTITION BY column] ORDER BY column ASC|DESC)OVER: RANK() 함수가 작동할 범위를 지정합니다.PARTITION BY column: 데이터를 특정 열로 그룹화하여 그룹별로 순위를 매깁니다(옵션).ORDER BY column ASC|DESC: 지정한 열의 값으로 순위를 매깁니다.RANK의 특징 동일 값에 동일 순위: 값이 같은 경우 동일한 순위를 부여합니다.순위 건너뜀: 동일 순위가 ..
인덱스란?"인덱스(Index)"는 데이터베이스에서 검색 속도를 향상하기 위해 사용하는 구조입니다. 책의 목차처럼 테이블의 특정 컬럼에 대해 빠르게 데이터를 찾을 수 있도록 돕습니다. 인덱스를 생성하면 데이터베이스가 해당 컬럼에 대해 정렬된 구조를 유지하여, 검색과 정렬 작업이 더 효율적으로 수행됩니다.인덱스의 개념 빠른 데이터 검색:테이블의 데이터 전체를 탐색(Full Table Scan)하지 않고, 인덱스를 통해 필요한 데이터를 빠르게 찾아냅니다.정렬된 데이터 구조:대부분의 인덱스는 B-Tree 구조를 사용하여 정렬된 상태를 유지합니다.추가 저장 공간:인덱스는 별도의 데이터 구조이므로 추가적인 저장 공간이 필요합니다.쓰기 작업의 부담:데이터를 삽입, 수정, 삭제할 때 인덱스를 갱신해야 하므로, 쓰기 성..
문제 3: 특정 날짜 이후의 거래 내역데이터셋 1: transactionstransaction_idcustomer_iddateamount11012023-01-0120021022023-03-1550031032023-02-1030041012023-04-2040051022023-05-25600 데이터셋 2: customerscustomer_idname101Alice102Bob103Charlie 문제'Alice' 고객이 거래한 가장 최근 날짜 이후에 거래한 모든 고객의 이름과 거래 내역을 출력하세요. CREATE TABLE transactions ( transaction_id INT PRIMARY KEY, customer_id INT, date DATE, amount INT);CREATE..
문제 2: 중복 데이터 필터링데이터셋: ordersorder_idcustomer_idtotal_amount110130021025003101700410320051021000 문제각 고객(customer_id)의 **가장 큰 주문 금액(total_amount)**을 출력하세요. CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, total_amount INT);INSERT INTO orders (order_id, customer_id, total_amount) VALUES(1, 101, 300),(2, 102, 500),(3, 101, 700),(4, 103, 200),(5, 102, 1000);SELECT customer_id..
문제 1: 직원 급여가 평균 이상 인 직원 찾기데이터셋: employeesidnamedepartment_idsalary1Alice101600002Bob102450003Charlie101700004David103400005Eve10155000 문제employees 테이블에서 평균 급여보다 높은 급여를 받는 직원의 이름과 급여를 출력하세요. CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50), department_id INT, salary INT);INSERT INTO employees (id, name, department_id, salary) VALUES(1, 'Alice', 101, 60000),(2, 'Bob', 102,..
ALTER 명령어란?"ALTER"는 기존 테이블, 데이터베이스, 뷰 등의 구조를 변경할 때 사용하는 명령어입니다. 주로 테이블의 구조를 수정하기 위해 사용됩니다.ALTER 구문1. 테이블에 컬럼 추가ALTER TABLE table_nameADD column_name datatype constraint;2. 테이블의 기존 컬럼 수정ALTER TABLE table_nameMODIFY column_name new_datatype constraint;일부 DBMS(MySQL)에서는 MODIFY 대신 ALTER COLUMN을 사용.3. 테이블의 컬럼 이름 변경ALTER TABLE table_nameCHANGE old_column_name new_column_name datatype;일부 DBMS(PostgreSQ..
CREATE 명령어란?"CREATE"는 데이터베이스 객체(테이블, 데이터베이스, 뷰, 인덱스 등)를 생성할 때 사용하는 명령어입니다. 가장 자주 사용되는 것은 테이블 생성이며, 이를 통해 데이터를 저장할 구조를 정의합니다.CREATE 구문1. 데이터베이스 생성CREATE DATABASE database_name; database_name: 생성할 데이터베이스의 이름.2. 테이블 생성CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ...); table_name: 생성할 테이블의 이름.column: 테이블의 컬럼 이름.datatype: 컬럼의 데이터 타입 (예: INT, VARCHAR, DA..