Data Story

데이터 사이언스, 쉽게 설명하기

Coding Test 14

SQL - [CASE, COALESCE, CAST, NULLIF]

CASE 어떤 특정 조건이 충족이 되면 SQL를 실행하기 위해 CASE를 사용한다. if/else와 유사하다. 아래 [그림 1]처럼 테이블이 있다고 가정해보자. ID 1~100은 "Premium", 100~200은 "Plus", 나머지는 "Normal"로 지정해주자. select customer_id, case when (customer_id 2 CAST 데이터 유형을 바꾸어준다. 'five' as integer은 안된다. select cast("5" as integer) NULLIF 두 개의 값을 넣어서 두 값이 같으면 NULL, 다르면 첫 번째 Argument가 도출된다. NULL 값이 에러의 원인이 되거나 원하지 않는 결과가 나올 때 사용한다. 우선, 아래 [그림 7]과 같은 표를 만들어보자 'a'..

Coding Test 2022.12.13

SQL - [Table Command]

Table Command 테이블을 만들기 위한 명령어들을 알아보자. CREATE TABLE 테이블을 만드는 명령어이다. (account는 명령어로 사용한 것이 아니라 '계좌'를 영어로 표현한 것이다.) #account table create table account( user_id serial primary key, username varchar(50) unique not null, password varchar(50) not null, email varchar(256) unique not null, create_on timestamp not null, last_login timestamp ) #job table create table job( job_id serial primary key, job_na..

Coding Test 2022.12.13

SQL - [DB, Table]

DB, Table 지금까지는 DB에서 Query를 했는데 이제는 SQL명령어로 DB와 Table을 생성해보자. 우선, 데이터 유형을 선택을 하고 저장하는 과정이 필요한데 어떤 데이터 유형을 선택할 것인지 고려해보아야 한다. 예를 들어 전화번호 저장하는데 숫자 유형을 쓸 것인가? Variable Character 형으로 하는 것이 나은 선택일 것이다. 유형 선택에 고민이 든다면 최고의 선례가 잇는 구글링을 하자. 또는 Document를 참조해서 데이터를 저장할 때 어떤 데이터 유형이 있는지 찾아보는 방법도 있다는 것을 기억해두자. Primary Key [그림 1]을 보면 customer_id가 PK(Primary Key)로 되어있다. - 고객 ID로 PK를 두어야 한다. 동명이인이 있을 수 있기 때문이다...

Coding Test 2022.12.13

SQL - [고급 SQL]

TimeStamps and EXTRACT : 날짜와 시간을 다룬다. 날짜와 시간 정보는 스스로 표와 DB를 만들 때 유용하다. 시간 정보와 날짜 정보를 저장하는 다른 데이터 종류의 Subset이 있다는 것을 기억해두자. 상황에 따라 모든 날짜, 시간, 표준시간대를 표시할지 여부를 결정해야 한다. 예를 들어 근무 시간 표를 만들고자 한다면 출퇴근 시간만 체크하면 되고 표준시간대는 굳이 쓸 필요 없을 것이다.(장기적으로 생각하기.) Math Functions and String Functions Sub-query Self-join ​ 1. TIMESTAMP and EXTRACT - TIMESTAMP show all /*실행시간을 보여주는 매개변수*/ show timezone /*select*/ select ..

Coding Test 2022.12.07

SQL - [AS, JOIN, UNION]

AS as, alias는 맨 마지막에 할당되기 때문에 alias로 필터링을 할 수 없다. Where문이나 Having절 같은 곳에서는 사용할 수 없다. 따라서 원래 열 이름이나 원래 함수 중 하나를 선택해야 한다. select customer_id , sum(amount) as total_spent from payment group by customer_id having sum(amount) > 100 ; JOIN [inner join] select * from TableA inner join TableB on TableA.col_match = TableB.col_match e.g. ​ /^그림 1*/ select payment_id, payment.customer_id,first_name from pa..

Coding Test 2022.12.07