본문 바로가기
데이터 분석/구글 스프레드시트(Google Sheets)

구글시트 - 쿼리1 (Google Query Basic 1 :: Select, Group by, Order by)

by debugglinglife 2024. 3. 12.
728x90

구글시트 - 쿼리1 (Google Query Basic 1 :: Select, Group by, Order by)

구글시트 - 쿼리2 (Google Query Basic 2 :: Limit /Label /Format / Pivot )

구글시트 - 쿼리3 (Google Query : WHERE + contains/ starts with/ends with /matches (Regex))

구글시트 - 쿼리4 (Google Query + Importrange (사용법 및 오류해결))

 


Google Query Basic 1

Google =Query 함수를 사용하는 이유는 다양하다.

  • 엑셀에서는 사용할 수 없는 함수이다.
  • Query 자체 기능이 엄청나다. (WHERE, Group by, Pivot, Order by, Limit etc)
  • 다른 함수와 조합해서 사용하기 편리하다. (예_ =Importrange, =vlookup etc)

데이터 관련 업무를 하는 나에게 =Query함수는 과거의 내가 하지 못한 일들을 가능케 만들어주었다. 그렇기에 많은 사람들이 동일한 경험을 하길 원한다.

[구글 고객센터 공식 정의]

구문
QUERY(데이터, 쿼리, 헤더)

Query 기본 사용 예시

[예제 파일]- 아래 Query의 결과 값 확인 및 연습할 수 있는 샘플 데이터 포함

Select (전체 또는 일부 열을 불러 올때 사용) 예) =QUERY(RAW!A:G,"select *",1)
Where (조건을 나타냄) 예) =QUERY(RAW!A:G,"select B,G WHERE B='직무역량향상연수' and G=20",1)

Query - 순서
Query 순서

 


SELECT

: 선택을 하는 경우에 사용됩니다.

=QUERY(RAW!A:G,"select *",1) // 전체 불러오기 * // 
=QUERY(RAW!A:G,"select A,B,C",1) // 특정 열(Column)불러오기 //
=QUERY(importrange("1vhL_9DSIuN0QWwyc6tSwcCZaksDC_YfZnWSAXGTyikc","RAW!A:G"),"select Col2,Col7 WHERE Col2='직무역량향상연수' and Col7=20",1)  // Importrange를 통해서,다른 파일에 있는 특정 열(Column)불러오기 //

WHERE

: 쉽게 조건에 맞는 필터를 건다고 생각하면 된다.

=QUERY(RAW!A:G,"select B,G WHERE B='직무역량향상연수' and G=20",1)
=QUERY(RAW!A:G,"select B,G WHERE B contains '직무역량향상연수' and G=20",1)
=QUERY(RAW!A:H,"select B,G WHERE H>=date'2022-12-30'",1)

[=, <>, >, >=, <, <=] 등과 함께 사용 가능
조건이 여러가지라면 and, or 로 연결 가능 
그외 contains, starts with, ends with, matches, != 등도 사용 가능. 
(contains = 특정 단어 등을 포함, starts/ends with 특정 단어로 시작하거나 끝남 등) 

위에 예제 처럼 = 대신에 contains 로도 표현은 가능하다. 


📌 Pro Tip

timeofday
Query ≥ time

  =QUERY(Master!$A:$N,"Select A,B,M WHERE (M>=timeofday '12:00:00' and M is not null",1)

D >= timeofday '"&TEXT(F35, "HH:mm:ss")&"'

GROUP BY

: 그룹을 지을 때 사용합니다. SUM(), COUNT() 등을 사용할 때 필수적으로 GROUP BY를 사용해야 합니다.

=QUERY(RAW!$A:$H,"SELECT B,SUM(F),SUM(G) WHERE G>=50 GROUP BY B",1)

Q.대분류를 기준으로 개설횟수의 합, 정원의 총 합계를 구하고 합니다. (단, 조건은 정원이 50명 이상인 대분류여야 합니다.)

아래와 같은 답을 얻을 수 있습니다. 

ORDER BY

: 정렬을 할 때 사용합니다. (내림차순, 오름차순 등)

=QUERY(RAW!$A:$H,"SELECT B,SUM(F),SUM(G) WHERE G>=50 GROUP BY B Order by SUM(G) desc",1)

위의 결과값을 정원 합계가 가장 많은 순서로 정렬을 하고 싶을 때 Order by를 사용 할 수 있으며, 아래와 같은 결과 값을 가질 수 있다. 


여기까지 =QUERY 함수와 관련된 가장 기본적인 내용입니다.



[참고링크]

[참고링크-유튜브(추천)]

728x90