← На главную Воспоминания

Вторник, 7 Ноября 2023

Прошел курс интродакшн в sql до конца. Итого распишу что изучил:

SQL

SELECT - выбрать столбцы, * - все колонки
FROM - из какой базы
WHERE - отфильтровать

SELECT city
FROM `bigquery-public-data.openaq.global_air_quality`
WHERE country = 'US'

SELECT *
FROM `bigquery-public-data.openaq.global_air_quality`
WHERE country = 'US'

GROUP BY - сгрупировать по столбцу
HAVING - тот же WHERE, только для групп, чтобы отфильтровать только нужные группы
COUNT - посчитать количество строк, COUNT(1) - посчитать количество строк в каждой группе

SELECT parent, COUNT(id)
FROM `bigquery-public-data.hacker_news.comments`
GROUP BY parent
HAVING COUNT(id) > 10

SELECT parent, COUNT(1) AS NumPosts
FROM `bigquery-public-data.hacker_news.comments`
GROUP BY parent
HAVING COUNT(1) > 10

ORDER BY - сортировать, DESC - в убывающем порядке
EXTRACT - выбрать данные из данных, например день или месяц из даты

SELECT COUNT(consecutive_number) AS num_accidents, 
        EXTRACT(DAYOFWEEK FROM timestamp_of_crash) AS day_of_week
FROM `bigquery-public-data.nhtsa_traffic_fatalities.accident_2015`
GROUP BY day_of_week
ORDER BY num_accidents DESC

AS - дать другое имя колонке
WITH - создать кастомную таблицу, к которой потом можно будет обращаться в этом запросе, для удобства

WITH time AS 
    (
        SELECT DATE(block_timestamp) AS trans_date
        FROM `bigquery-public-data.crypto_bitcoin.transactions`
    )
SELECT COUNT(1) AS transactions, trans_date
FROM time
GROUP BY trans_date
ORDER BY trans_date

INNER JOIN - обьединить таблицы
ON - по какой колонке склеивать таблицы

SELECT L.license, COUNT(1) AS number_of_files
FROM `bigquery-public-data.github_repos.sample_files` AS sf
INNER JOIN `bigquery-public-data.github_repos.licenses` AS L 
    ON sf.repo_name = L.repo_name
GROUP BY L.license
ORDER BY number_of_files DESC

Big Query python

Так в бигквери можно распечатать все колонки в базе

from google.cloud import bigquery

client = bigquery.Client()
dataset_ref = client.dataset("openaq", project="bigquery-public-data")
dataset = client.get_dataset(dataset_ref)

print([table for table in list(client.list_tables(dataset))])

Так получить таблицу и перевести ее в датафрейм

table_ref = dataset_ref.table("global_air_quality")
table = client.get_table(table_ref)
client.list_rows(table, max_results=5).to_dataframe()

Сертификат курса
Into to SQL

Далее начну изучать компьютерное зрение