no image
SQL : Group by
Group by # Grouping by a single column data를 group으로 나눈 다음에 group별로 aggregate 할 수 있도록 해준다. 'Apple Stock prices dataset'에서 년도 별로 data(row)가 몇 개(행)씩 있는지 세기? sum, avg, min, max와 같은 aggregate 함수는 어떤 column의 value들을 계산할 것인지 지정이 필요하기 때문에 sum( ), avg( ), min( ), max( ) 등 ( ) 안에 계산하려는 column명을 명시해야 하지만 count( ) 함수의 경우 어떤 열을 선택하던, 그 결과값은 동일하기 때문에 보통 count(1) 또는 count(*)로 입력한다. # 열 간 연산 후, grouping by a c..
2023.07.10
no image
SQL : Aggregate functions : Count, Sum, Min/Max, Avg
1. Count # Counting all rows 'Apple Stock prices dataset'에서 dataset의 행의 수를 카운트한다고 하자. # Counting individual columns (distinctive values) 같은 dataset에서 특정한 column의 non-null인 행의 수를 카운트하고 싶다고 하자. 이번에는 특정 column에서 서로 다른 value가 몇 개가 있는지 카운트하고 싶다고 하자. (+중복제거) SELECT COUNT (DISTINCT 컬럼명) FROM 테이블명 2. Sum 특정 행의 모든 값들을 합을 구해준다. count 와 다르게 (당연히..?) 해당 column의 모든 값이 numerical value이어야 가능하다. NULL값들은 0으로 처리한..
2023.07.06
no image
SQL : not, order by
1. NOT SQL에서 어떤 조건문 앞에 NOT 을 붙이면, 그 조건에 해당하지 않는 행을 불러올 수 있다. # NOT은 LIKE 와도 같이 잘 쓰인다. 예를 들어, WHERE artist NOT LIKE 'a%' # non-null인 행들을 골라낼 때 IS NULL 과 함께 쓰이곤 하는데, 이 때 syntax에 주의해야 함 !! : # 추가 예시 : Write a query that returns all rows for songs that were on the charts in 2013 and do not contain the letter "a". SELECT * FROM tutorial.billboard_top_100_year_end WHERE song_name NOT ILIKE '%a%' AND y..
2023.07.01
no image
SQL : is null, and, or
1. IS NULL SQL에서 IS NULL 은 말그대로 missing data를 갖고 있는 행을 찾는 logical operator이다. 예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고 "artist" 이라는 이름의 column이 있을 때 그 value로 어떠한 data도 담겨있지 않는 행들 고른다고 해보자. 2. AND SQL에서 AND 는 두 개의 조건을 동시에 만족하는 행을 불러오고 싶을 때 쓰는 logical operator이다. 예를 들어서 이번에는 같은 table에서 를 뽑아보고 싶다고 하자! "year" column 에 대해서는 year = 2012 라는 condition을, "year_rank" ..
2023.07.01
no image
SQL : logical operator : like, in, between
1. LIKE SQL에서 LIKE 는 정확한 어떤 값에 해당하는 것이 아닌, 그와 유사한 값을 찾는 logical operator이다. 예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고 "group_name" 이라는 이름의 column이 있을 때 그 value가 'Snoop'으로 시작하는 rows를 불러오고 싶다고 하자. ( column 이름은 꼭 " " 안에 넣어주지 않아도 된다. 지정하는 value는 ' ' 안에 넣어준다. ) 그런데 갑자기 % 는 무엇인가..!! 여기서 % 는 wildcard라고 불리는 것인데, any character and set of characters 를 대신한다. + 그러니까 예를 들어 "group_name"이 문자 's'로 끝나는 ..
2023.07.01
no image
SQL : where, comparison operator, arithmetic in sql
1. WHERE 을 이용하여 필터링하기 불러오고 싶은 데이터의 조건이 있을 때 WHERE clause를 이용한다. 주고 싶은 조건에 해당하는 행만 나타날 것이다. # 예를 들어, month 라는 column이 있는데 나는 month가 1인 rows만 불러오고 싶을 때 : # non-numeric type의 column에 대한 조건을 줄 때 : (예를 들어 아래 table에서 month_name이 May인 rows만 불러오고 싶을 때) 2. 비교연산자 ; comparison operators # numerical data # non-nuemrical data 위의 모든 비교연산자를 적용할 수 있으며, 주의할 점은 작은 따옴표 ' '를 반드시 붙여야 한다는 점! Note: SQL uses single quo..
2023.06.30
no image
SQL : select, from, limit
SQL에는 다음과 같이 DQL과 DML이 있다. 이 가운데 데이터를 추출해오는 것이 제일 기본이니, 질의어부터 배워야 한다. 1. 특정 열 선택하기 SELECT 는 내가 보려고 하는 열을 지시하고, FROM 은 어떤 table에서 가져오는 것인지 지시하는 것이다. # tutorial이라는 schema의 us_housing_units라는 table에서 'year', 'month', 'west'라는 column을 불러오는 쿼리 2. 모든 열 선택하기 만약 모든 열을 선택하고 싶다면 개별 열의 이름 대신에 * 를 입력하면 된다. 3. 특정 열을 다른 이름으로 불러오기 특정 열의 이름을 기존의 이름이 아닌, 다른 이름으로 불러오고 싶다면 AS 를 이용한다. 예를 들어 위의 table에서 # south열을 sou..
2023.06.30
no image
sql을 왜 배워야 할까?
최근 유튜브를 통해 데싸 현직자의 이야기를 듣게 되었다. 산업공학과, 통계학과... 등 데이터 애널리스트나 사이언티스트로 진학하는 사람들이 있는 과에 다니는 친구들과 다르게 나는 관련직에 계신 선배나 현직자들과 물리적 거리가 멀어 (그냥 인맥 없다는 말 길게 씀) 브런치나 유튜브에 올라오는 현직자의 이야기들이 너무 소중하고 감사하다. 보통 내가 학교 수업시간 또는 프로젝트를 할 때 python/R로 데이터를 불러온다. 보통 파이썬의 경우 pandas package를 이용해서 pd.read_csv("data.csv") 그러니까 애초에 csv로 되어있는 데이터를 나는 불러왔었다. 하지만 실제로 현업에서는 파일 형태로 되어있는 데이터를 제공받는 경우는 거의 없다고 한다. 내가 직접 회사의 DB에 접속해서 적절..
2023.06.30