SQL для начинающих: первые шаги

RU
Каким специалистам нужен SQL, структура данных и базовые команды SQL.
SQL для начинающих: первые шаги
Published
08.07.2021
|
devtodev

Знание SQL существенно облегчает работу любому специалисту, которому необходимы данные для выполнения тех или иных задач. Мы в devtodev подготовили цикл статей, которые познакомят вас с редактором и основными командами SQL. С их помощью вы научитесь применять SQL для анализа данных игр и приложений: работать с датами, вычислять ARPPU и другие монетизационные метрики, определять структуру покупок пользователей и многое другое. Начнем с определения.

SQL (Structured Query Language) – эффективный инструмент, позволяющий обращаться к базам данных (БД) для хранения, получения и обработки информации. Существует заблуждение, что SQL – язык программирования, хотя это не так, и правильнее называть его языком запросов. Составляя запрос к базе данных, мы можем получить прямой доступ к информации о действиях пользователя в игре или приложении. 

Кто работает с SQL? 

Умение составлять SQL-запросы – важный навык для любого аналитика. Даже если в продукт уже интегрирована аналитическая система, бывают нетривиальные случаи, когда ее функционала недостаточно. Тогда специалисты и обращаются к SQL-запросам для работы с сырыми данными напрямую

При работе с игрой или приложением бывают ситуации, когда другим членам команды нужно быстро получить какие-либо данные, но они не хотят обращаться к аналитику и отвлекать его от основной работы. Именно поэтому знание основ SQL пригодится разработчикам, продакт-менеджерам, геймдизайнерам и другим специалистам, работающим с данными. 

Структура данных 

Когда мы говорим про SQL, то сразу же стоит уточнить, что речь будет идти о реляционной БД. Она представляет собой хранилище двумерных таблиц с фиксированным количеством столбцов и неограниченным числом строк. Между собой таблицы могут быть связаны с помощью одинаковых идентификаторов. С их помощью можно объединять разные таблицы и находить нужные данные. Формат таблиц и связи между ними всегда задаются заранее, ещё на этапе проектирования БД. В таких таблицах, например, может содержаться информация о пользователях и обо всех совершенных ими платежах в игровом магазине. 

Как посчитать количество и сумму платежей за три месяца

Разберем базовые команды на примере простого запроса из раздела SQL Report devtodev. Он поможет нам посчитать количество и сумму всех платежей, совершенных за три месяца в игре или приложении. 

select to_char(eventtime, 'yyyy-mm') as month
, sum(p.priceusd)*0.7 as revenue 
, count(eventtime) as payments   
from p102968.payments p
where eventtime>=current_date - interval '3 month' and eventtime < current_date  
and tester is false  
and cheater is false  
group by 1
order by 1 asc

SELECT – обязательная команда SQL, которая обращается к базе данных для создания выборки нужных нам столбцов в заданном формате. 

Функция TO_CHAR нужна для преобразования дат или чисел в одну строку, а AS дает имя полю при создании выборки. Таким образом, в примере мы сгруппировали все даты платежей по месяцам. Теперь они будут отображаться с названием “month”.

SUM используется только для числовых столбцов. Здесь мы суммируем все значения столбца p.priceusd с учетом их группировки по месяцам, а затем умножаем на 0,7 для вычета 30% комиссии. 

COUNT считает количество строк таблицы. Сосчитав количество строк в столбце eventtime (даты совершения платежей), мы узнаем, сколько всего платежей было совершено в выбранный период времени. 

FROM обязательный элемент запроса, определяющий название таблицы, с которой мы работаем. В SQL отчете devtodev список всех таблиц и столбцов удобно расположен в левом поле. Кликните на название нужного столбца, чтобы добавить его в любой участок запроса.

SQL Report
SQL Report. Скриншот из ДЕМО devtodev

WHERE добавляет к запросу фильтр по дополнительным условиям. Здесь, с помощью команд CURRENT_DATE - INTERVAL и CURRENT_DATE, а также операторов сравнения (>= и <), мы задали интервал для отчета – последние 3 месяца. 

Логический оператор AND позволяет добавить дополнительные условия к выборке данных, где IS FALSE мы используем для исключения тестировщиков и читеров.

GROUP BY 1 и ORDER BY 1 ASC группируют выдаваемые данные по положению поля в таблице (по первому столбцу) и сортируют по возрастанию. 

Закончив с запросом, смотрим результат:

Результат SQL запроса
Результат SQL запроса. Скриншот из ДЕМО devtodev

Мы получили 3 столбца с данными о платежах – месяц, доход и количество платежей за каждый период времени. Таким образом, с помощью одного запроса, мы можем быстро составить любой необходимый отчет, визуализировать его на графике и сохранить на дашборд.

Визуализация результата запроса на графике
Визуализация результата запроса на графике. Скриншот из ДЕМО devtodev

Синтаксис SQL включает в себя большое количество команд и операторов, но научиться пользоваться ими может любой специалист, который стремится связать свою деятельность с анализом данных.

Read more