Язык SQL — Основы аналитики на SQL
В современном мире данные создаются с огромной скоростью. Мы постоянно делаем фотографии, снимаем видео, покупаем товары в интернет-магазинах, посещаем сайты, пишем посты в соцсетях. Все эти данные можно хранить на компьютерах, внешних носителях или в облачных сервисах. Но для организованного хранения больших объемов информации эти способы не подойдут.
В таких случаях лучшим вариантом будут базы данных. Они похожи на коробки — в них можно складывать информацию и хранить ее так, чтобы было легко найти.
Для работы с базами используются разные СУБД — системы управления базами данных. Это специальные программы, которые позволяют создавать, удалять, менять и читать информацию из базы.
Формат базы зависит от типа СУБД. Например, данные можно хранить в виде таблиц из строк и столбцов — таким образом устроены реляционные СУБД. Яркие примеры реляционных СУБД — это MySQL, PostgreSQL и Oracle.
Чтобы работать с реляционными СУБД, нужно освоить SQL — язык запросов к базам данных. В этом уроке мы начнем знакомиться с этим языком.
Как аналитики используют SQL
Чтобы обращаться к записям в базе данных, используется SQL — язык структурированных запросов. С его помощью можно легко и быстро получать нужные данные, добавлять новые записи, изменять или удалять существующие.
В SQL есть несколько основных типов команд:
- SELECT — выбрать данные из базы, то есть получить информацию, отфильтровать ее или отсортировать по критериям
- INSERT — добавить новые записи в базу данных
- UPDATE — изменить существующие данные в базе, то есть обновить значения в определенных строках и столбцах таблицы
- DELETE — удалить данные из базы
На практике аналитики данных чаще всего используют команду SELECT . Она помогает получать нужную информацию из базы данных, чтобы затем провести анализ и принять обоснованные решения.
Язык SQL в аналитике решает множество задач:
- Фильтрация данных — можно выбрать только те данные, которые соответствуют определенным условиям. Это очень полезно, когда аналитику нужно сосредоточиться на конкретных значениях или категориях
- Сортировка данных — можно отсортировать данные по возрастанию или убыванию и упорядочить их по определенным критериям. Это заметно облегчает анализ
- Вычисление агрегатных функций — можно воспользоваться встроенными функции и рассчитать сумму, среднее значение, минимальное и максимальное значение, а также другие статистические показатели. Это помогает аналитикам быстро оценить общую картину и определить тренды
- Объединение данных из разных таблиц — можно связывать данные из разных таблиц, чтобы получить более полную информацию для анализа. Это особенно полезно, когда данные хранятся в отдельных таблицах, но связаны между собой
- Группировка данных — можно сгруппировать данные по определенным критериям, чтобы увидеть общие закономерности и зависимости. Это упрощает анализ и помогает найти важные инсайты
На этом курсе мы научимся решать все эти задачи.
Как работать с SQLime
Для обучения аналитике на SQL мы будем пользоваться SQLime — удобным онлайн-инструментом, который не требует установки программы на компьютер. Это интерактивная среда, в которой можно писать и выполнять SQL-запросы.
Чтобы начать пользоваться SQLime, откройте сайт SQLime в браузере.
На главной странице вы увидите:
Страница состоит из двух блоков:
- Окно для ввода SQL-запросов. Здесь вы можете использовать подсказки и автодополнение кода, чтобы ускорить процесс написания запросов и уменьшить вероятность ошибок
- Окно для вывода результатов. Здесь вы увидите результаты выборки данных, обновлений, добавления или удаления записей
В SQLime можно подключиться к любой локальной или удаленной реляционной базе данных. Это можно сделать разными способами:
- С помощью файла в формате .db
- C помощью URL-ссылки
- С помощью команд CREATE и INSERT
Для примера возьмем уже созданную базу данных с информацией о продажах товаров в разных магазинах. Чтобы поработать с ней, достаточно перейти по ссылке .
Как извлекать записи
Выполним первый запрос:
SELECT * FROM products;
Рассмотрим его подробнее:
- Ключевое слово SELECT указывает, что мы хотим извлечь данные из таблицы
- Символ * означает, что мы хотим выбрать все столбцы из таблицы
- Ключевое слово FROM указывает, из какой таблицы извлечь данные
- Название products обозначает таблицу, из которой мы хотим извлечь данные
Выполнив этот запрос, мы получим таблицу со всеми строками и столбцами из таблицы products :
Здесь мы видим полную информацию о каждом продукте, включая его идентификатор, название, категорию и цену.
Аналогично предыдущему примеру, можно извлечь все записи из sales — таблицы с продажами:
SELECT * FROM sales;
Такой результат мы получим:
Если нужны какие-то конкретные поля, можно перечислить их через запятую вместо звездочки:
SELECT sale_id, sale_date, quantity FROM sales;
Сделав такой запрос, мы получим таблицу с тремя столбцами:
Как работает пагинация
Пагинация позволяет разбить большой набор данных на меньшие части, которые можно отображать на разных страницах. В SQL для этого используются операторы LIMIT и OFFSET .
Допустим, мы хотим посмотреть список продаж на страницах, каждая из которых содержит по три записи. Чтобы получить продажи на первой странице, используем следующий SQL-запрос:
SELECT * FROM sales LIMIT 3 OFFSET 0;
Результат этого запроса выглядит так:
Чтобы просмотреть продажи на второй странице, увеличим значение OFFSET на 3:
SELECT * FROM sales LIMIT 3 OFFSET 3;
Получим такую таблицу:
Операторы LIMIT и OFFSET ограничивают количество возвращаемых строк и пропускают определенное количество строк перед началом извлечения:
- Оператор LIMIT определяет максимальное количество строк в результате. Например, LIMIT 3 ограничивает результат до трех строк
- OFFSET определяет, сколько строк следует пропустить перед извлечением. Например, запрос с OFFSET 3 пропустит первые три строки и вернет результаты, начиная с четвертой строки
Чтобы получить продажи на N-ной странице, обычно используют OFFSET с такой формулой:
OFFSET (N — 1) * количество_записей_на_странице`
Для примера вычислим значение OFFSET , которое покажет продажи на третьей странице:
(3 — 1) * 3 = 6
Как присвоить псевдоним
Чтобы работать с базой данных было удобнее, мы можем изменить названия на более понятные.
Для этого используется оператор AS , который присваивает строке, столбцу или таблице более удобное название — псевдоним (alias).
Попробуем присвоить псевдонимы столбцам product_name , category , и price :
SELECT product_id, product_name AS "Название продукта", category AS "Категория", price AS "Цена" FROM products;
В выводе мы увидим таблицу с понятными названиями:
Как найти уникальные значения
Представим, нам нужно проанализировать ассортимент магазина и найти в нем уникальные категории товаров. Для таких задач используется оператор DISTINCT . Он позволяет получить уникальные значения определенного столбца или набора столбцов.
Извлечем уникальные категории из таблицы products .
SELECT DISTINCT category FROM products;
В результате мы увидим три уникальные категории:
Если в таблице есть несколько товаров с одинаковыми категориями, то в результате запроса каждая категория появится только один раз.
Выводы
В этом уроке мы начали знакомиться с языком запросов SQL. Подведем краткие итоги:
- В современном мире очень много информации — такие объемы удобнее всего хранить в базах данных
- Базы данных управляются с помощью СУБД — систем управления базами данных. Они позволяют организовать хранение в различных форматах и структурах
- Реляционные СУБД работают с данными, которые хранятся в таблицах из строк и столбцов
- Язык SQL используется для обращения к данным, хранящимся в базе данных и управления ими
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Кто такой SQL-аналитик, как им стать и сколько он зарабатывает
Согласно рейтингу TIOBE SQL входит в топ-10 самых востребованных языков программирования. Для чего нужен SQL и как стать ан алитиком баз данных с его помощью — разбираемся в этой статье.
Что такое SQL в аналитике
- Выявляет закономерности.
- Находит повторяющиеся цепочки событий.
- Управляет базами данных (создание, группировка, ранжирование, объединение).
В чем заключается работа аналитика SQL
SQL — это, прежде всего, инструмент бизнеса. Работа SQL-аналитиков состоит из нескольких этапов:
1. Поиск проблемы
Любое исследование начинается с постановки задачи. Важно понять, какие в бизнесе есть проблемы, и какие данные нужно собрать, чтобы найти решение.
2. Оценка качества данных
Для релевантных выводов нужны полные и достоверные сведения. Если данные для оценки будут выбраны неправильно, это может привести к ложному результату.
3. Аналитика
Непосредственно анализ данных и поиск закономерностей. Работа может выполняться автоматически при помощи алгоритмов или вручную, например, когда нужно исследовать большое количество разных источников.
4. Презентация результатов
Необходимо рассказать об итогах работы простым и доступным языком. Часто в этом помогают графики и диаграммы, их тоже должен уметь строить SQL-специалист.
Что нужно знать SQL-аналитику
Для работы в SQL-аналитике нужен аналитический склад ума. А также — профильные знания. Что нужно уметь в SQL?
- Знать основы администрирования баз данных и язык SQL.
- Разбираться в системах управления базами данных (СУБД) – MySQL, ClickHouse, PostgreSQL.
- Уметь работать с данными в таблицах — фильтровать, сортировать, объединять.
- Разбираться в математике, статистике и теории вероятности.
- Уметь создавать схемы и графики для презентации результатов своих исследований.
Также пригодятся soft skills:
- Внимательность к деталям.
- Отличная память, умение работать с большими объемами информации.
- Коммуникабельность, т.к. придется общаться с большим количеством людей от разработчика до тестировщика.
- Широкий кругозор.
- Умение доносить информацию окружающим.
Те, кто хочет стать SQL-аналитиком, должны быть готовы к рутинной и часто однообразной работе. Но в то же время нужно уметь мыслить нестандартно и искать небанальные решения.
Как выучиться на SQL-аналитика
Если вы хотите попробовать себя в SQL, есть много способов, как начать карьеру в этой сфере.
Высшее образование
Комфортно чувствовать себя в SQL будут выпускники кафедры информатики и программисты. Это хорошая база для бизнес-аналитики, но, возможно, придется подтянуть профильные навыки, например, знание SQL и СУБД.
Видеоуроки
Много полезной бесплатной информации можно найти на YouTube. Лекции будут полезны новичкам, но понадобится мотивация и самодисциплина, чтобы заниматься регулярно. Также помните, что помимо теории обязательно нужна практика: проходите уроки и ищите задачи на SQL-запросы, тренируйтесь.

Онлайн-курсы
Помогут быстро освоить профессию с нуля, даже если у вас нет опыта в IT. В отличие от книг и видео, хороший курс дает не только теоретические знания, но и практику.
Также из плюсов — обучение можно легко подстроить под свое расписание. Можно смотреть уроки в удобное время, решать SQL задачи онлайн и совмещать обучение с работой и другими повседневными делами.
Стажировка в компании
Если у вас есть базовые профильные знания, но не хватает практики, можно попробовать устроиться на стажировку в отдел аналитики. Наиболее востребованы программисты SQL в:
- IT-компаниях;
- банковских организациях;
- транспорте и логистике;
- ритейле и онлайн-продажах;
- телекоммуникациях и связи.
Искать стажировки можно на сайтах с вакансиями или на ресурсах компаний: о наборе стажеров часто пишут в социальных сетях.

Мария Николаева,
руководитель направления SQL-аналитики в Инфомаксимум
Я закончила направление подготовки «Бизнес-информатика», в рамках которого впервые столкнулась с SQL. Когда пришла в Инфомаксимум, долгое время нарабатывала хард-скиллы на боевых задачах, параллельно изучая профильную литературу и статьи. Мой совет: пишите сами что-то с самого начала. Да, получаться будет не сразу, но без ошибок побед не бывает.
Эффективный путь — пройти профильную стажировку. Например, все наши нынешние тимлиды — это ребята, которые однажды пришли в компанию на стажировку.
Если же стажировка — не вариант, то можно попробовать освоить все самостоятельно. Материалы по SQL не составит труда найти в сети. Есть как полноценные курсы с теорией и практикой, так и отдельные тренажеры на углубление работы с операторами. Совет: ищите курсы, где есть возможность получать фидбэк.
Из интересной литературы я выделю книгу Кирилла Еременко «Работа с данными в любой сфере». Отлично поможет тем, кто планирует связать жизнь с аналитикой, но не знает, куда двигаться.
Еще сюда можно добавить книгу «Данные: визуализируй, расскажи, используй. Сторителлинг в аналитике» Нафлика Коула Нассбаумера. Просто, неформально и вполне доступно даже для новичков рассказано про аналитику и ее специфику.
Сколько зарабатывает SQL аналитик?
По данным ГородРабот.ру, средняя зарплата SQL-программиста в 2023 году составила 104 000 рублей. Большинству соискателей предлагают оплату 80 000 рублей.

На портале Headhunter.ru на момент написания статьи нашлось более 500 вакансий для SQL-аналитиков. В том числе, есть предложения от крупных компаний — Дикси, ЮMoney, ВТБ.
Большинство работодателей требуют от соискателей профильное образование, знание языка SQL, Excel и баз данных, а также от года опыта работы по специальности.

Знание SQL обязательно не только аналитикам. Этот язык также используют разработчики, администраторы баз данных, тестировщики. Если вдруг вам не понравится работать в аналитике, вы сможете перейти в другую смежную нишу.
Что такое SQL в аналитике?
SQL — это язык структурированных запросов, который помогает находить закономерности в больших объемах данных.
Какие задачи решает SQL?
SQL-аналитик собирает и анализирует данные, чтобы найти решение для проблемы бизнеса.
Что нужно уметь в SQL?
В первую очередь, знать основы администрирования баз данных и язык SQL. Уметь пользоваться СУБД для управления базами данных – MySQL, ClickHouse, PostgreSQL. Также важно уметь работать с таблицами, оформлять результаты аналитики визуально, разбираться в математике и теории вероятности.
Сколько нужно времени, чтобы изучить SQL?
Зависит от вашего бэкграунда и способа обучения, который вы выбрали. Изучить язык SQL можно за пару месяцев на специальном курсе, профессию аналитика — за год-полтора. Самостоятельное обучение и практика могут занять от двух лет.
Для чего нужен SQL в бизнесе?
Существует стереотип, что SQL используют только программисты, однако это не так. Он давно превратился в эффективный инструмент для бизнес-аналитики. Сегодня мы расскажем, что он может дать вам как предпринимателю.
Помощь при масштабировании бизнеса
Предположим, вы открываете магазин. Все данные по нему: наименования позиций, поставщики, сроки доставки и прочее собраны в одну Excel-таблицу.
Время идет, бизнес расширяется, позиций становится больше, растет круг поставщиков, появляются новые филиалы в других городах. Одной таблицы не хватит, требуется более сложная система, которая упорядочит информацию и будет выдавать ее по запросу и с учетом указанных критериев.
На помощь придет SQL. Он позволит создать упорядоченную систему, из которой легко достать нужную информацию. Принцип работы основан на реляционных базах данных (БД), то есть наборе таблиц, которые ссылаются друг на друга. Допустим, в одной таблице перечислены поставщики и числовые коды, обозначающие города, а во второй хранится расшифровка идентификаторов. Первая ссылается на вторую, позволяя узнать город.
Таким образом, одна огромная таблица с данными заменяется на несколько маленьких и легких, что намного проще и быстрее в использовании.
Аналитика
Главная причина, зачем нужен SQL, — это возможность собирать и анализировать важные данные. Для этого даже не нужно просматривать все таблицы, достаточно сформулировать запрос, и нужная информация будет предоставлена автоматически.
К примеру, можно узнать выручку каждой кассы, какая из них принесла максимальную прибыль, когда была последняя отгрузка и не заканчивается ли в магазине определенный товар. Такой отчет под конкретный запрос называется Ad hoc reports и активно используется аналитиками.
Работа с внутренними данными
При наличии прав можно заглянуть в любые базы данных компании и получить информацию о клиентах. Например, сотрудник техподдержки интернет-провайдера может увидеть имя позвонившего, тариф, статус услуги, дату последнего зачисления на счет. И все это – за несколько секунд, просто нажав пару кнопок. Все это благодаря SQL, без него поиск информации занимал бы много времени.
Безопасность данных
Еще одно, для чего используется SQL, это настройка индивидуального доступа к информации. К примеру, можно скрыть паспортные данные клиентов от рядовых сотрудников, ограничив им доступ к определенным таблицам.
Правда, это может замедлять работу. Например, если данные хранятся в одной БД, а ключ-дешифровщик в другой, скорость шифрования снизится. Зато такое решение повышает безопасность.
Возможен и обратный случай, когда настройка прав доступа ускоряет работу. Допустим, в компании трудятся 500 человек и все имеют доступ уровня «суперпользователь». В итоге при их запросах система ищет информацию по всем таблицам сразу, что замедляет процесс. Ограничив доступ и выдав привилегии только тем, кому это действительно необходимо, можно существенно ускорить поиск информации.
Все эти преимущества вы получите, внедрив SQL в работу. Если вы задумались об его использовании, обращайтесь в Garpix. Запишитесь на бесплатную консультацию, и мы поможем оптимизировать бизнес-процессы вашей компании.
Зачем аналитикам данных знать SQL
Эксперт «Нетологии» рассказывает, что такое SQL, как работать с SQL командами и, главное, зачем это всё нужно аналитикам данных.
Рассказывает Ирина Хомутова, эксперт и методолог курса SQL «Нетологии»
Что такое SQL?
Если коротко, это мощный инструмент для анализа и преобразования данных, который позволяет разработчикам обращаться к различным базам данных.
И если мы хотим анализировать данные — нам нужно их откуда-то получать, а получаем мы их, как правило, из баз данных. Не всегда это видно невооружённым взглядом, но читаем ли мы новости, переводим деньги со счёта на счёт, запрашиваем выписки по счёту, делаем покупки в интернет-магазине или просто знакомимся с ценами конкурентов — всё это мы делаем, обращаясь к различным базам данным.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
И вот перед тем, как мы получаем привычное «читабельное» представление нужной информации, данные извлекаются из хранилищ. И чаще всего это происходит именно с использованием SQL. В широком смысле SQL не является языком программирования, хотя и существует такое устоявшееся заблуждение. На самом деле он больше похож на самую обычную английскую речь.
Кто такие аналитики данных и с чем они работают?
Аналитики данных — своего рода экспериментаторы, которые владеют инструментарием для соединения потоков данных из различных источников, а также выдвигают гипотезы и проверяют их. Вот тут-то им и нужны базы данных и язык, позволяющий точно формулировать к ним запрос. Правильное получение исходных данных — это искусство, гарантирующее высокую вероятность того, что в поведении исследуемых объектов установятся причинно-следственные связи. Именно качество данных позволяет выбирать наиболее подходящие гипотезы.
Помимо SQL, аналитику данных необходимо знать инструменты статистического анализа данных: это и узкоспециализированные пакеты — SPSS, Statistika, и различные языки программирования — SAS, R, Python, обладающие функциональностью для анализа и визуализации данных, и совсем легковесные решения типа Gretl. А самый популярный набор инструментов у аналитиков, это, пожалуй, Python + SQL.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Часто нужно представить данные наглядно и понятно для бизнеса, а иногда и самому оценить, какие факторы, влияющие на данные, являются значимыми, а какие нет, какие причины отклонений созависимы. Когда необходимо строить прогнозы, аналитики вместо того чтобы работать напрямую с базами, работают с датасетами (таблицами данных) с помощью различных пакетных решений.
При этом в каждой индустрии свои стандарты анализа, зависящие от чувствительности данных: для госструктуры набор инструментов будет одним (исходя из жёстких ограничений доступов), для НКО — другим, для диджитал-стартапа — третьим.
Откуда брать данные и что делать с SQL командами?
В организациях есть свои хранилища данных и при необходимости к ним можно получить доступ. Это происходит и при разграничении прав пользователей, и при работах по разработке баз данных. С помощью Python, зная адрес сервера и данные для подключения к нему, можно импортировать нужные библиотеки и писать запросы уже внутри используемой программы.
Примеры библиотек: для ODBC — pyodbc, PostgreSQL — psycopg2, MySQL — mysql.connector и т. д.
Ваша программа-«получатель данных», в свою очередь, может находиться внутри облачного решения на основе jupiter notebook. А к полученным данным вы примените дальнейшие выкладки и/или построите графики (как минимум, библиотеки: pandas, numpy, matplotlib и т.д.).
Аналитические функции
Считается, что в базах данных каждая строка запроса должна обрабатываться независимо от других. Практика диктует нам иные задачи, в которых часто необходимо группировать строки и вычислять для них общие показатели, используемые для оценки признаков строк внутри группы.
- вычислить частоту общения друзей друг с другом (например, необходимо определить максимально близкие контакты внутри выделенных кругов): тогда мы будем искать процентные соотношения длительности переговоров, частоты переписок и телефонных разговоров, количество географических пересечений, посещений общих ресурсов и т.д.,
- сравнить зарплаты сотрудников внутри отделов, вычислить рейтинги,
- узнать топ-N заказчиков в сечении по услугам или продуктам,
- узнать загруженность соседних точек продаж и т. д.
На помощь приходят аналитические функции SQL — мощный инструмент, который помогает разгрузить клиента от большого объёма процедурного кода, СУБД — от сложных и порой малоэффективных запросов, уменьшить время на разработку и получить при этом желаемый результат.
Функции для статистических расчётов включают в себя как стандартные агрегирующие функции (используются для получения обобщающих значений), так и расширения, характерные для конкретных СУБД.
Рассмотрим примеры, основанные на классическом тренировочном датасете Postgres.
Мы хотим обслуживать без очереди пассажиров, входящих в топ-5 по суммарному чеку за перелёт. Для этого вычисляем и выводим определённый список, чтобы спланировать дальнейшую работу:
with flycnt as ( select book_ref, book_date, total_amount/max(total_amount) over (partition by date_trunc('day', book_date)) as pcnt from bookings.bookings ) select * from ( select book_ref, book_date, pcnt, row_number() over(partition by date_trunc('day', book_date) order by pcnt) as top from flycnt ) as topflyers where top
На неделю получили примерно такой список:
