# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # 03. Run Query
# - 라이브러리를 활용해 Query날리는 법이 아닌 BigQuery Console에서 진행해보겠습니다!
# - Public Datasets를 활용해 6가지 쿼리문을 작성해보겠습니다
#
# ## usa_names
# - 우선 BigQuery Console에서 좌측의 Public Datasets 아래에 bigquery-public-data :usa_names을 클릭한 후, use_1910_current를 클릭해주세요
# - 그 후, Details, Schema,Preview를 보겠습니다

# ## Details
# <img src="../images/005_run_query_usa_01.png" width="700" height="700">
#
# ## Schema
# <img src="../images/005_run_query_usa_03.png" width="500" height="700">
#
# ## Preview
# <img src="../images/005_run_query_usa_02.png" width="500" height="700">

# - 이 테이블은 해당연도에 특정 주에서 특정 성별을 가진 특정 이름의 수를 저장한 테이블입니다
# - 총 5개의 Column(state, gender, year, name, number)

# ### Q1) 가장 많은 state, year별 태어난 사람의 수( 쿼리를 직접 짜보세요! 일부러 빈칸을 넣었어요)
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT state, year, sum(number) as number
# FROM `bigquery-public-data.usa_names.usa_1910_current` 
# group by state, year
# order by number desc
# ~~~
#
# <img src="../images/005_run_query_usa_04.png" width="700" height="700">

# ### Q2) ( 연도 상관없이 ) 가장 많이 태어난 이름은?
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT name, sum(number) as number
# FROM `bigquery-public-data.usa_names.usa_1910_current` 
# group by name
# order by number desc
# ~~~
#
# <img src="../images/005_run_query_usa_05.png" width="700" height="700">

# ### Q3) 가장 많이 태어난 이름은 James 그렇다면 연도별 James의 Count를 구하는 Query
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT name, year, sum(number) as number
# FROM `bigquery-public-data.usa_names.usa_1910_current` 
# where name = 'James'
# group by name, year
# order by number desc
#
#
# ~~~
# <img src="../images/005_run_query_usa_06.png" width="700" height="700">

#
# ## nyc-tlc:green data
# - 우선 BigQuery Console에서 좌측의 Public Datasets 아래에 nyc-tlc:green을 클릭한 후, trips_2014를 클릭해주세요
# - 그 후, Details, Schema, Preview를 보겠습니다

# ## Details
# <img src="../images/005_run_query_nyc_tlc_02.png" width="500" height="700">
# ## Schema
# <img src="../images/005_run_query_nyc_tlc_01.png" width="500" height="700">
# ## Preview
# <img src="../images/005_run_query_nyc_tlc_03.png" width="800" height="700">
#

# - 이 테이블은 2014년 뉴욕의 green taxi에 대한 기록입니다
# - 총 21개의 Column

# ### Q4) 2014년에 고객수(passenger_count)별 탑승 횟수를 구하는 쿼리를 짜보세요
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT passenger_count, count(passenger_count) as number
# FROM `nyc-tlc.green.trips_2014` 
# group by passenger_count
# order by number desc
# ~~~
# <img src="../images/005_run_query_nyc_tlc_04.png" width="500" height="700">

# ### Q5) 2015년 Table도 동일 dataset에 있는데, 2015년도 데이터도 포함해서 고객수별(passenger_count)탑승 횟수를 구하는 쿼리를 짜보세요
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT passenger_count, count(passenger_count) as number
# FROM `nyc-tlc.green.trips_*`
# where _table_suffix between '2014' and '2015'
# group by passenger_count
# order by number desc
# ~~~
# <img src="../images/005_run_query_nyc_tlc_05.png" width="500" height="700">

# - _table_suffix를 활용해 Table의 기간을 설정할 수 있습니다

# ### Q6) 위에서 사용한 Table에서 연도별(pickup_datetime 기준) 운행 횟수(pickup_datetime)을 구하는 쿼리를 짜보세요
# <img src="../images/005_blank.png" width="500">
#
# <img src="../images/005_blank.png" width="500">

# ~~~
# #standardSQL
# SELECT EXTRACT(YEAR FROM pickup_datetime) as year, count(pickup_datetime) as total
# FROM `nyc-tlc.green.trips_*`
# where _table_suffix between '2014' and '2015'
# group by year
# order by total desc
# ~~~
# <img src="../images/005_run_query_nyc_tlc_06.png" width="500" height="700">

# - EXTRACT 함수를 사용하면 timestamp에 있는 데이터를 추출할 수 있습니다!

# ### 이번 쿼리는 시간이 꽤 걸렸을거에요. 여기서 Explanation을 눌러볼까요?
#
# <img src="../images/005_run_query_nyc_tlc_07.png" width="600" height="700">
# - 여기에선 BigQuery의 쿼리 단계가 나타나요. Average Time, Max Time이 표시되고, 어떤 부분에서 연산 시간이 오래 걸렸는지 알려줍니다!
# - 또한 Error가 날 경우엔, Error가 어디서 나타났는지 알려줍니다

# ####  몇가지만 간단히 추가했는데, 추후에 계속 쿼리에 대해 추가하겠습니다 ( Window 함수, Join, With문 등등..)

StarcoderdataJupyterScriptsDedupFiltered