본문 바로가기
Research/Google products

구글시트 QUERY 함수: 파트1

by RIEM 2021. 12. 14.

Google Sheets QUERY Function Tutorial:PART1

 

Reference

  • 유튜브, 채널 ‘Learn Google Spreadsheets’

 

Intro

SQL문과 유사한 구글의 QUERY문을 학습해보자. 데이터는 캐글에서 얻은 타이타닉 데이터를 기준으로 진행하겠다.

 

SELECT 문

=query(test!A1:K419,"select C, D, E, I",1)

 

query의 첫 번째 파라미터에는 데이터의 모든 행렬을 넣어주는데 이때 header(Passengerid, Name, Sex,…)까지 모두 넣어준다. 헤더 위치 값 설정은 바로 뒤에 설정해주니 계속 해보자.

그 다음 두 번째 파라미터에는 명령어가 들어간다. SQL문과 유사하다. SELECT C, D, E, I는 말 그대로 4개의 열을 가져와라는 의미다.

마지막 세 번째 파라미터에는 헤더 행값을 입력해주는데 위 기준에는 헤더 row가 1개이므로 1로 넣어주었다.


> 결과

위와 같은 데이터들이 나열된다. 


> 명령문을 따로 셀에 기제한 내용을 가져오기

QUERY문 2번째 파라미터에 명령문을 직접 적지 않고 A1셀의 명령문을 가져와도 수행이 가능하다. 


> 소문자로 데이터 불러오기

단, 소문자로 행열을 지정할 경우 오류가나니 주의하자. MYSQL도 원칙상으로는 대문자로 명령문을 입력하는 것이 옳다고 알고있는데 구글시트가 참 유사한 점이 많다.

 

SELECT WHERE 조건문

> SELECT 명령어에 WHERE 조건문을 추가하기

SELECT C, D, E, I를 하되 I행렬(기준 데이터 시트의 I열인 FARE 정보 열)이 20 이상인 조건(WHERE)으로 데이터를 가져오라고 한 명령어다. 결과 시트의 E열의 FARE 데이터를 보면 모두 20 이상인 수의 데이터만 수집된 것을 알 수 있다.


> 조건이 두 개인 경우

 

조건(WHERE)이 2개인 경우는 AND로 묶어준다. 이번엔 성별 컬럼 D에서 남성(male)의 조건을 추가했더니, 결과 시트에 남성 데이터만 결과가 나오는 것을 알 수 있다.

> 조건 세부 지정(조건 1-1 or 조건 1-2) AND 조건 3

성별 컬럼(D)에서 여성인 조건과 더불어 Embarked의 Column에서 Q뿐만 아니라 S도 함께 보고싶다면 위와 같이 (A OR B) AND C 조건문으로 보면 된다. 물론 필요에 따라 자유롭게 응용해서 쓰면 된다. 특정 조건(C)하에 두 변수(A, B)를 비교하기가 용이하다.

 

ORDER BY 

> ORDER BY 활용해 오름차순 적용하기

데이터 시트의 컬럼 C(NAME)에 ORDER BY를 적용하면 오름차순으로 결과 시트에 데이터가 나타나는 것을 알 수 있다.


> DESC 내림차순 정렬은 DESC를 붙여주기만 하면 된다.

 

LIMIT

> 데이터가 너무 많아 일부 데이터만 보고싶다면 LIMIT 명령어를 사용하면 된다

하지만 지금은 내림차순 기준으로 되어있으니 오름차순으로 바꿔주자.


> 오름차순을 위해선 그냥 내림차순 명령어 DESC 를 빼주기만 하면 된다

 

LIKE

LIKE는 조건문에서 특정 문자열이 있는 조건을 찾을 때 활용할 수 있는 명령어다.

 

위 명령어에서 LIKE ‘%John%’은 ‘John’앞뒤로 문자가 있는(%) 조건이 추가되었다. 이름에 ‘John’으로 시작하고 끝나는 이름이 없고 잘 보면 ‘...Mr. John…’, ‘Mrs. John…’과 같이 ‘John’ 앞뒤로 띄어쓰기가 있고 다른 부가적인 이름들이 나열되는 것을 알 수 있다. 컴퓨터는 빈칸과 다른 문자까지도 동일한 단어로 인식하기 때문에 정규표현문법인 ‘%’를 활용해서 컴퓨터가 알아먹게 명령어를 입력해주어야 한다. 

 

정규표현식 관련 문법 정리한 글은 아래를 참고하면 좋겠다. 

https://chrisjune-13837.medium.com/%EC%A0%95%EA%B7%9C%EC%8B%9D-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EC%98%88%EC%A0%9C%EB%A5%BC-%ED%86%B5%ED%95%9C-cheatsheet-%EB%B2%88%EC%97%AD-61c3099cdca8


> 정규표현식 응용 

 

정규표현식을 응용하면 이런 것도 찾을 수 있다. PasengerId 중 10의 자리수가 9인 ID만 추출할 수 있다면 어떻게 해야할까? LIKE의 조건에 언더바(_)를 빈 문자로 채우고 꼭 들어가야 할 9를 두 번째 자리수에 채워준다. 여기서 ‘_9_’는 ‘어떤 문자 1개 + 숫자 9 + 어떤 문자 1개' 조합의 조건을 가지게 된다. 

 

위 정규표현식은 상품 정보를 다룰 때 유용하게 쓸 수 있다. 상품의 SKU넘버를 정의하거나 인식하는 함수를 만들 수 있기 때문이다. 



댓글