Зачем продакту знания аналитики и SQL
В статье разрушаем стереотипы, что продакт-менеджеру не обязательно иметь аналитические способности. Наглядно разбираем, зачем продакту аналитика и SQL и как развивать свои навыки аналитики.
690 показов
15K открытий
Дмитрий Поздняков
Ex-Product Manager в Google
В чем отличие продакт-менеджера от аналитика?
Продакт-менеджер – это человек, отвечающий за развитие продукта для пользователей (подробнее описано тут). Он знает, что нужно изменить в продукте и в какой приоритетной последовательности, чтобы принести наибольшую ценность конечным пользователям. А они, в свою очередь, принесут прибыль компании.
Часто в зону ответственности продакт-менеджера также входят разработка и поддержание внутренних инструментов компании по управлению, мониторингу, исправлению работы разных аспектов продукта. Основной приоритетной задачей продакт-менеджера остается фокус на конечных пользователях. На мой взгляд, в этом и заключается основное отличие продакт-менеджера от бизнес-аналитика.
Для бизнес-аналитика одной из основных задач является анализ данных для принятия управленческих решений. Другими словами, это специалист, заточенный на потребности внутренних команд компании. Бизнес-аналитик может быть направлен на изучение внешней среды (изучение потребителей, маркетинговый или конкурентный анализ), либо на изучение внутренней ситуации в компании (объемы продаж, эффективность подразделений, количество технических сбоев и тд). Работа аналитика никогда не будет эффективной, если внутри компании нет запроса и ресурса для реагирования на тот или иной вид данных.
Как связаны аналитика и продакт-менеджмент?
Остается актуальным вопрос: откуда же продакт-менеджер знает о том, что нужно изменить в продукте, если он зачастую даже не взаимодействует напрямую с клиентами? Остается всего два источника информации: аналитика данных и взаимодействие со стейкхолдерами. Из моего опыта компании стараются избегать прямого влияния клиентов на продакт-менеджеров, чтобы избежать предвзятости в приоритизации продуктовых изменений. То, что может задеть сердце продакт-менеджера в ходе диалога с клиентом, по факту может оказаться далеко не основным приоритетом для компании.
Таким образом, большой вес имеют софт скиллы продакт-менеджера для правильного и плодотворного взаимодействия с внутренними командами компании. Большое значение имеет выстраивание правильной коммуникации со стейкхолдерами на их языке общения. То, что может казаться максимально приоритетным для отдела разработки, по факту может не оказать никакого влияния на пользователей. И, наоборот, супер важное и востребованное изменение может оказаться практически невозможным в условиях ограниченности ресурсов и времени.
Знания подходов к анализу данных позволяет продакт-менеджеру принести свою добавленную стоимость в процесс управления продуктом. Зачастую продакт-менеджеры могут выступать в роли того самого заказчика для бизнес-аналитика. Даже если продакту повезло найти подходящего аналитика, нужно быть компетентным в вопросе составления ТЗ для анализа данных: сформулировать гипотезу, утвердить методологию, метрики, обеспечить репрезентативную выборку, избежать основных предубеждений (например ошибки выжившего) и сделать правильные выводы.
Нужно ли продакт-менеджеру иметь навыки аналитики и SQL? Однозначно это будет большим плюсом. Для меня это равносильно вопросу: “Нужно ли знать английский для работы в международной компании?”. Да, есть примеры управленцев, достигших успехов и без этого навыка. Это может быть необязательным требованием в описании вакансии.
Но сколько возможностей дает владение этим навыком? Это не только правильная коммуникация со стейкхолдерами (будь то аналитики или разработчики), но и доступ к огромному количеству возможностей: находить и объединять информацию как напрямую для улучшения продукта, так и для пользы стейкхолдерам.
В большинстве случаев даже в таких корпорациях как Google, продакт-менеджер не располагает постоянным доступом к аналитикам. Для штатной роли аналитиков обычно выделяют большие задачи в бизнесе: анализ продаж, финансовый анализ, маркетинговый анализ. Несмотря на возможность консультаций с бизнес-аналитиками, зачастую они не имеют нужной детализации знаний для решения того или иного продуктового вопроса.
Соответственно, большую часть аналитики приходится делать самому. На мой взгляд, это вполне хороший тон – сверить правильность финансовых заключений в своей модели с отделами аналитики, но для этого нужно хотя бы знать и понимать их инфраструктуру баз данных. Какие ключевые метрики из каких баз данных используются, какая соответствующая таксонометрия, стандарты периодичности учета данных? Для этого, опять же, знания SQL крайне полезны.
Пример работы над изменениями
Чтобы убедить стейкхолдеров в необходимости изменений в продукте, как правило мне приходилось работать над BRD (Business requirement document). BRD – это документ, который продакт-менеджер подготавливает для стейкхолдеров, чтобы объяснить бизнес-потребность в том или ином техническом изменении: расчет прибыли и затраты на изменение. Без расчета и аналитики о выгодах изменений невозможно вовлечь в работу стейкхолдеров из разных команд для работы над проектом.
В зависимости от проекта, выгоды могут быть в объеме выручки, снижении количества обращений, багов, сэкономленного времени, численности персонала. К сожалению, не все проекты удается свести к одному общему знаменателю или метрике. Бывает, что проект снижает репутационные риски, риски безопасности и т.д. Именно поэтому аналитическое умение и способность оцифровывать выгоды крайне полезно и необходимо для продакт-менеджера.
Продакт-менеджер – “не инженер и не дизайнер”. Он может не знать всех затрат, необходимых на выполнение того или иного изменения. Но расчет и понимание коммерческих выгод является ключевым объектом дискуссий между продуктовыми и бизнес-командами.
Как прокачать навыки аналитики
На мой взгляд, академический подход к тестированию гипотез может быть очень полезен для выработки правильной методологии. Моей специальностью в универе были статистические маркетинговые исследования, что мне помогло более структурировано подходить к аналитике. Несмотря на то, что в университете мы изучали SPSS и Microsoft Access, на практике эти инструменты мне не пригодились в карьере.
Однако основы работы с базами данных довольно универсальны. Сначала я ограничивался Google таблицами и продвинутыми функциями вроде Importrange и визуализации в Google Datastudio. Потом мне приходилось на практике изучать Google SQL для решения практических задач, например, сведений баз данных контрактов с платежной системой. Также я запустил свой сайт (подробнее тут), и знания SQL мне пригодились для сведения баз данных пользователей сайта с дополнительными плагинами, обеспечивающих функционал. Что мне помогало в изучении — это наличие практической задачи. Поиск средств для ее решения я находил как на stackoverflow, так и советуясь с коллегами.
Таким образом, знание аналитики крайне полезно для продакт-менеджеров. Далеко не обязательно знать все технические инструменты и языки программирования, чтобы качественно выполнять работу. Однако основы работы с базами данных, знания о тестировании гипотез и желание разобраться в цифрах дают больше возможностей для творчества.
Аналитические способности можно прокачивать как самостоятельно, так и с помощью онлайн-обучения, которое сейчас очень актуально. Если вы чувствуете необходимость в прокачке ваших скиллов, в онлайн университете ProductStar есть разнообразие курсов по изучению аналитики и SQL: “Старт в SQL для анализа данных” или “Аналитика с нуля”. За 2 месяца вы научитесь получать и обрабатывать данные, визуализировать их, работать с SQL. Самое главное – обучение проходит сразу на практике, изучая реальные кейсы!
Если вас заинтересовала сфера продакт-менеджмента и вы хотели бы освоить для себя новую профессию, советуем обратить внимание на курс “Профессия: продакт-менеджер” от ProductStar. С нуля вы не просто научитесь навыкам продакт-менеджмента, а сможете трудоустроиться на позицию продакта по окончании обучения. С чем вам помогут наши эксперты из Центра Карьеры.
Зачем аналитику нужно программирование на SQL?

Многие аналитики работающие с SQL и занимающиеся анализом данных, никогда не сталкивались с программированием на этом языке, потому что SQL в первую очередь язык структурированных запросов, а не полноценный язык программирования. Однако, программные возможности в нем есть, хотя и весьма скромные.
В тот момент, когда при написании запроса мы сталкиваемся с какими-либо ограничениями, например синтаксическими, нам может пригодиться программирование. Ниже я расскажу о программных конструкциях и модулях существующих в SQL и чем они могут помочь аналитику.
Так как работаю я в основном с Microsoft SQL Server, то в тексте речь пойдет о программных возможностях баз данных построенных именно на этой системе.
В SQL Azure, Oracle Database, PostgreSQL и прочих реляционных базах синтаксис может отличаться, но принцип остается тем же.
Программные конструкции
Программная конструкция — это часть программы, отвечающая за определенное действие и объясняющая компьютеру как решить задачу. То есть небольшой строительный блок из которых и состоит программный код.
Переменные
Изучение любого из языков программирования, практически всегда начинается со знакомства с переменными.
Переменная — это ячейка в памяти компьютера, используемая для временного хранения какой-либо информации (чисел, строк, дат и т.п.).
У переменной есть три важных атрибута:
- Имя (чтобы можно было к ней обратиться);
- Тип данных (чтобы понимать, что с этой переменной можно делать);
- Область видимости (чтобы понимать, где она будет использоваться).
Также в SQL у переменной есть три фазы:
- Объявление переменной при помощи инструкции DECLARE ;
- Инициализация при помощи SET или SELECT ;
- Использование переменной при помощи подстановки ее имени в нужное место вашего скрипта.
Давайте создадим переменную:
-- Объявляем переменную с именем 'StartDate' и задаем тип данных date DECLARE @StartDate date -- Инициализируем переменную и присваиваем ей значение '2019-09-30' -- Если нужно объявить сразу несколько переменных, то можно воспользоваться инструкцией SELECT (пример будет ниже) SET @StartDate = '2019-09-30' -- Используем переменную в запросе SELECT * FROM Orders WHERE OrderDate = @StartDate
Как переменные могут помочь аналитику?
Первое что приходит на ум — это создание отчета с динамическими периодами, чтобы не редактировать каждый раз даты отчета в условии WHERE :
-- Объявляем переменные с именем 'StartDate' и 'EndDate' DECLARE @StartDate date , @EndDate date -- Инициализируем переменные и присваиваем для 'StartDate' значение '2019-09-30', а для @EndDate используем специальную функцию возвращающую текущую дату GETDATE() SELECT @StartDate = '2019-09-30', @EndDate = GETDATE() -- Используем переменную в запросе SELECT * FROM Orders WHERE OrderDate BETWEEN @StartDate AND @EndDate
Что касается области видимости, то нужно запомнить, что переменная видима с момента ее объявления до конца скрипта, после чего она уничтожается.
Условные операторы
Практически все языки программирования предоставляют возможность использовать условные операторы и SQL не исключение.
Условный оператор приходит на помощь в тот момент, когда вам нужно выполнить либо одно, либо другое действие в зависимости от заданного условия.
- Ключевое слово IF ;
- Условие, в соответствии с которым будет происходить проверка;
- Необязательное ключевое слово ELSE , указывающее на то, что делать если условие не выполнилось.
Давайте разберем на примере:
-- Объявляем переменную с именем @var и сразу присваиваем ей значение (так тоже можно) DECLARE @var int = 4 -- Простая форма, если условие не выполняется, то ничего не происходит IF 2 + 2 = @var SELECT 'Верно' -- Сложная форма, если условие не выполняется, говорим что делать IF 2 + 2 = @var SELECT 'Верно' ELSE SELECT 'Ошибка'
Чаще всего на практике требуются более сложные составные условия, содержащие различные логические связки.
Зачем это аналитику?
Логический оператор IF , сам по себе нельзя использовать в обычном SELECT -е, однако он активно применяется при создании программных модулей, таких как функции и хранимые процедуры о которых мы поговорим ниже.
Но есть логический оператор, который можно использовать внутри запроса и речь идет о операторе CASE он же оператор множественного выбора.
Оператор множественного выбора в зависимости от указанных условий позволяет вернуть одно из множества возможных значений, то есть CASE работает как несколько IF -ов.
- Ключевое слово CASE ;
- Ключевое слово WHEN , после которого идет условие проверки;
- Ключевое слово THEN , после которого идет действие к выполнению;
- Необязательное ключевое слово ELSE , указывающее на то, что делать если ни одно из условий не выполнилось;
- Ключевое слово END .
На практике все гораздо проще:
-- CASE работает только внутри SELECT SELECT -- При помощи CASE разобьем все товары на 4 группы в зависимости от цены CASE WHEN price 500 THEN 'Дорогие товары' ELSE 'Бесплатно' END FROM Orders
Для аналитика польза очевидна, так как при помощи CASE , можно создавать новые параметры отчетах, а также в зависимости от условий рассчитывать показатели.
Для примера давайте создадим новую группу каналов, ведь часто в отчетах бизнес-пользователи хотят видеть более понятные названия вместо smm_cpc , cpc или organic .
SELECT CASE WHEN medium = 'smm_cpc' THEN 'Таргетированная реклама' WHEN medium = 'cpc' THEN 'Контекстная реклама' WHEN medium = 'organic' THEN 'Органический поиск' WHEN medium = 'referral' THEN 'Переходы по ссылкам' ELSE 'Прочее' END FROM Orders
Циклы
Ни один уважающий себя язык программирования не обходится без циклов.
Цикл — это инструкция, позволяющая выполнять один и тот же запрос несколько раз, пока условие истинно.
- Ключевое слово WHILE ;
- Условие в соответствии с которым будет выполняться цикл.
-- Объявляем переменную с именем @var DECLARE @var int = 4 -- Создаем цикл и рядом пишем условие в соответствии с которым, цикл будет выполняться до тех пор, пока @var не будет равно 0 WHILE @var > 0 -- Заключаем тело цикла в скобки, в SQL они обозначаются как BEGIN . END BEGIN -- В SELECT выводим текущее значение переменной, а в SET устанавливаем для нее новое значение минус 1 SELECT @var SET @var = @var - 1 END
В результате запрос, находящийся в операторных скобках, будет выполнен 4 раза:

В чем же польза для аналитика?
Так же как и в случае с условным оператором IF , цикл нельзя вставить внутрь запроса и он нужен для создания программных модулей о которых мы сейчас и поговорим.
Программные модули
Программный модуль — это запрос или скрипт сохраненный на сервере и оформленный в виде объектов.
Главная фишка использования программных модулей состоит в том, что они позволяют собирать сложные решения из простых составных частей. То есть позволяют декомпозировать большую задачу на несколько мелких.
Представление
При решении какой-либо задачи, наши запросы могут стать достаточно большими и их контекст сложно постоянно держать в голове. И как только такая ситуация возникнет — лучшим решением будет использование функционала представлений.
Представление — это сохраненный в базе запрос с которым можно работать так, как будто бы это готовая таблица.
У представления есть несколько ограничений:
- В качестве представления можно сохранить не любой запрос, а только SELECT ;
- В запросе не должно быть сортировки;
- Все столбцы должны иметь имена.
- Ключевое слово CREATE VIEW использующееся для создания представления;
- Ключевое слово AS , после которого должен идти текст запроса.
При создании представления сервер не выполняет запрос, а сохраняет его в базе для последующего использования.
Давайте разберем на примере:
-- Создаем представление с именем SalesReport CREATE VIEW SalesReport AS -- Далее указываем наш большой и сложный запрос, текст которого мы хотим сохранить на сервере SELECT [date] , cost , impressions , clicks , sessions , orders , revenue FROM Orders WHERE medium = 'cpc'
И теперь, чтобы получить результат выполнения запроса, нам достаточно выполнить следующий код:
SELECT * FROM SalesReport
Чем это полезно аналитику?
Использование представлений позволяет абстрагироваться от сложностей появляющихся при написании запроса, что крайне актуально, когда ваш запрос не помещается в один экран.
И теперь можно дальше усложнять запрос, используя представления как строительные блоки для конечного отчета.
Табличное выражение
Чтобы создавать представления, у вас должны быть права администратора к базе данных. Но что делать когда таких прав нет, но возможности представлений использовать хочется?
Специально для этого был придуман функционал табличного выражения.
Табличное выражение — это представление которое не сохраняется в базе, а существует только в момент выполнения SELECT -а и после самоликвидируется.
- Ключевое слово WITH использующееся для создания табличного выражения;
- Ключевое слово AS , после которого должен идти псевдоним;
- В скобочках () указывается текст запроса, который будет выполняться при обращении к псевдониму;
- После табличного выражения должен идти одиночный SELECT .
-- Создаем табличное выражение с именем Cost WITH Cost AS ( -- Далее в скобках указываем наш запрос SELECT [date] , sourceMedium , campaign , cost , impressions , clicks FROM Advertising ) -- Выводим результат выполнения запроса SELECT * FROM Cost
Пока не очень понятно в чем польза и чем это отличается от представления?
Давайте разберем пример из практики практически любого digital-аналитика:
- Перед вами поставили задачу — создать отчет для отдела контекстной рекламы с доходом и расходом по рекламным кампаниям.
- Данные по расходам хранятся в одной базе, а данные по заказам в другой.
- Ключами позволяющими связать данные между собой являются UTM-метки.
Для нас теперь это раз плюнуть, вооружимся табличными выражениями и напишем запрос:
-- Запрашиваем расходы WITH Cost AS ( SELECT [date] , sourceMedium , campaign , cost , impressions , clicks FROM Advertising ) -- Запрашиваем заказы , Orders AS ( SELECT [date] , sourceMedium , campaign , orders , revenue FROM Crm ) -- Создаем итоговый отчет , Report AS ( SELECT Cost.[date] , Cost.sourceMedium , Cost.campaign , SUM(Cost.cost) AS 'cost' , SUM(Cost.impressions) AS 'impressions' , SUM(Cost.clicks) AS 'clicks' , SUM(Orders.orders) AS 'orders' , SUM(Orders.revenue) AS 'revenue' FROM Cost -- Соединяем данные между собой по дате и UTM-меткам LEFT JOIN Orders ON Cost.[date] = Orders.[date] AND Cost.sourceMedium = Orders.sourceMedium AND Cost.campaign = Orders.campaign GROUP BY Cost.[date], Cost.sourceMedium, Cost.campaign ) -- Выводим результат SELECT * FROM Report
Да, конечно, эту задачу можно было решить гораздо меньшим количеством кода.
Но моей целью было показать вам суть табличных выражений — они помогают разбить задачу на маленькие подзадачи, структурировать и упорядочить ваш код, что особенно актуально при написании больших и сложных отчетов.
Процедуры
Как и в случае представления, процедура представляет собой сохраненный в базе запрос, но процедура не является таблицей и поэтому на нее не накладываются такие строгие ограничения, как в представлении.
Основное назначение процедур — это сохранение программных сценариев для выполнения определенных действий в базе данных ( UPDATE , DELETE , INSERT и тп.), в том числе для вызова других процедур и функций.
Но у процедуры есть ограничения:
- Процедуру нельзя использовать в SELECT -е;
- Процедуру нельзя усложнять «снаружи», то есть ее нельзя JOIN -ть, отфильтровать, группировать и тп.
- Ключевое слово CREATE PROCEDURE использующееся для создания процедуры;
- В процедурах можно использовать параметры, название которых указывается после знака @ ;
- Ключевое слово AS , после которого должен идти программный код;
- Для вызова процедуры используется ключевое слово EXECUTE вместе с ее названием.
-- Создаем процедуру с именем HumanResourcesProc CREATE PROCEDURE HumanResourcesProc -- Указываем параметры процедуры, которые будут выступать в качестве переменных @FirstName nvarchar(50), @LastName nvarchar(50) AS -- Далее идет текст скрипта SELECT FirstName , LastName , Department FROM HumanResources WHERE FirstName = @FirstName AND LastName = @LastName
И теперь, чтобы вызвать процедуру, достаточно выполнить следующий код:
-- Запускаем выполнение скрипта процедуры для вывода информации по определенному сотруднику EXECUTE HumanResourcesProc 'Иван', 'Иванов'
Чем процедуры могут помочь аналитику?
Функционал процедур можно задействовать для построения на основе вашей базы данных полноценного ETL-решения — то есть процесса по извлечению данных из внешних источников, их трансформации и очистке, а также загрузке в хранилище.
А подключая к хранилищу Python или R-скрипты, вы сможете обучать, оценивать и развертывать модели машинного обучения прямо в базе данных.
Функции
Зачастую нам нужно повторять одно и то же действие во многих частях программы или даже в разных отчетах. И чтобы не писать один и то же код в разных местах были придуманы функции.
Функции — это конструкции, содержащие исполняемый код и являющиеся основными строительными блоками программы.
В некоторых языках программирования нет деления на функции и процедуры, так в чем же отличия?
- Функция может быть усложнена как «внутри», так и «снаружи», то есть она поддается сортировке, группировке и JOIN -у.
- Функция всегда возвращает результат определенного типа, например, встроенная функция SUM — всегда вернет число. Процедура же может выполниться и ничего не вернуть или вернуть число, строку, дату и даже таблицу в зависимости от того, как она запрограммирована.
И как тогда определиться что использовать? Все просто.
Процедуру стоит использовать, если вы собираетесь менять базу или для оформления конечного результата, не требующего дополнительной обработки, во всех остальных случаях используйте функции.
- Ключевое слово CREATE FUNCTION использующееся для создания функции;
- Параметры функции указываются в скобках () и после знака @ ;
- Ключевое слово RETURNS указывает на тип возвращаемых функцией данных;
- Ключевое слово AS , после которого должен идти программный код;
- Ключевое слово RETURN , сообщающее функции, что нужно вернуть значение.
Давайте переделаем процедуру из предыдущего примера в функцию:
-- Создаем функцию с именем HumanResourcesFunc CREATE FUNCTION HumanResourcesFunc ( -- В скобочках указываем параметры функции, которые будут выступать в качестве переменных @FirstName nvarchar(50), @LastName nvarchar(50) ) -- Указываем что в данном случае функция должна вернуть нам таблицу RETURNS TABLE AS RETURN -- Далее идет текст скрипта SELECT FirstName , LastName , Department FROM HumanResources WHERE FirstName = @FirstName AND LastName = @LastName
Для вызова созданной функции используем следующий код:
-- Запускаем выполнение скрипта функции для вывода информации по определенному сотруднику SELECT * FROM HumanResourcesFunc ('Иван', 'Иванов')
Как функции могут облегчить жизнь аналитику?
Помните, чуть выше в блоке про оператор множественного выбора, мы разбирали пример с новой группой каналов?
А теперь, представьте, что это действие — присваивание понятного названия канала, нам нужно сделать не один раз в одном месте, а много и в нескольких отчетах.
Чтобы не повторять один и тот же код, можно написать функцию, которая заменит CASE :
-- Создаем функцию с именем ChannelFunc CREATE FUNCTION ChannelFunc ( -- В скобочках указываем параметр функции, который будет выступать в качестве переменной @medium nvarchar(50) ) -- Указываем, что в данном случае функция должна вернуть нам одно значение в виде строки RETURNS nvarchar (100) AS -- В операторных скобкам описываем логику при помощи IF BEGIN IF @medium = 'smm_cpc' RETURN 'Таргетированная реклама' IF @medium = 'cpc' RETURN 'Контекстная реклама' IF @medium = 'organic' RETURN 'Органический поиск' IF @medium = 'referral' RETURN 'Переходы по ссылкам' RETURN 'Прочее' END
И теперь, если мы захотим в каком-нибудь отчете заменить стандартные каналы на их русские названия, то просто применим функцию:
SELECT [date] -- Вместо CASE вызываем функцию ChannelFunc с параметром medium , ChannelFunc([medium]) AS 'newChannel' , campaign , cost , impressions , clicks FROM Advertising
Что дальше?
В следующей статье я расскажу как, используя программные возможности языка SQL, можно создать автообновляемый отчет на основе стека технологий MS SQL Server и Power BI.
Документация Microsoft (Transact-SQL):
- Осваиваем SQL на примере данных интернет-магазина Google (базовые конструкции);
- Осваиваем SQL на примере данных интернет-магазина Google. Ч.2 (JOIN).
Роман Романчук
Эксперт по аналитике данных, ex-директор по аналитике Сравни. Директор команды продуктовой аналитики в Xsolla.
- Кейс: как построить отдел аналитики в большой компании? — 06.05.2022
- Учимся применять оконные функции — 29.09.2020
- Автоматизация отчетности при помощи SQL и Power BI — 05.04.2020
Зачем SQL нужен финансовому аналитику
Наряду с SQL финансовый аналитик должен владеть инструментами статистического анализа — узкоспециализированными пакетами (Statistika, SPSS) и различными языками программирования (Python, SAS, R).

В государственных и бизнес-организациях есть собственные хранилища информации о ценах, динамике продаж, финансовых операциях, выписках по счетам, перечнях товаров, новостях и т.п. Эти данные располагаются на серверах и записаны в таблицах в электронном формате. Получить к ним доступ может сотрудник любой другой организации, использующий инструмент SQL (structured query language) — язык структурированных запросов. Необходимость в получении доступа к базе данных возникает не только для анализа, но и при ее разработке или при разделении прав пользователей.
Что такое SQL
В реляционной (зависимой) базе данных все объекты задаются строками (записями) в таблице. После извлечения этих записей из БД их нужно преобразовывать в читабельное (интерпретируемое на человеческом языке) представление, что и происходит при помощи преобразующего инструмента SQL внутри специально разработанных для этой цели программ. Вопреки устоявшемуся заблуждению, это не язык программирования, а информационно-логический язык, больше похожий на обычный английский.
В БД строки запросов можно обрабатывать независимо одна от другой. Но для решения большинства задач, строки необходимо группировать под общие показатели и оценивать их признаки внутри групп. Для примера:
- узнать загруженность конкурентных точек продаж
- анализировать эффективность работы персонала и вычислить рейтинг каждого сотрудника
- определить ТОП лучших заказчиков, потребителей продуктов или услуг
- найти процентное соотношение числа обращений, посещений, переговоров, географических пересечений и т.п.;
Разобраться в большом объеме процедурных кодов, абстрагироваться от малоэффективных запросов, снизить время на обработку и получить желаемый результат помогают агрегирующие функции SQL, система управления базами данных (СУБД) или расширения для конкретных систем.
Как SQL применяют в сфере финансов
Финансовых аналитиков можно отождествить с экспериментаторами, соединяющими потоки данных с разных источников и выдвигающими гипотезы для проверки. Здесь-то им и нужен декларативный язык для создания точной формулировки запросов к информации в электронном формате.
Для правильного получения исходных данных и выбора самых подходящих для них гипотез, аналитик применяет все свои знания для гарантии высокой вероятности образования причинно-следственных связей в поведении исследуемых реалий.
Обязательно ли знать программирование для того, чтобы начать изучать SQL
Наряду с SQL финансовый аналитик должен владеть инструментами статистического анализа — узкоспециализированными пакетами (Statistika, SPSS) и различными языками программирования (Python, SAS, R) для визуализации электронной информации. Наиболее популярный инструментарий эксперта в сфере финансов — Python + SQL.
Другой аспект использования SQL — биржевая торговля. Большая часть брокерской инфраструктуры построена на языке программирования С++, на основе которого созданы библиотеки и различный софт для расчетов ценовых моделей от отдельных обрабатывающих инструментов до модулей.
Наряду с С++ распространен язык С# и Java для реализации определенных частей трейдерских предложений. Торговые стратегии и прототипирование моделей описываются скриптовыми языками. Они же (вроде TradeScript) могут быть встроенными в торговые терминалы. Стоит отметить, что SQL аналитик вакансии сейчас достаточно распространены на рынке.
Где можно обучиться SQL
В настоящее время существуют разнообразные учебные материалы по SQL и работают курсы по обучению. Одним из них является Coursera. Приведем основные причины изучения этого языка для начинающих инженеров баз данных:
- Универсальность. Лидирующие позиции занимают SQL Server и MySQL.
- Обучение по экспоненциальной кривой. Благодаря разнообразию средств обучения, будущий финансовый аналитик углубляет познания в понятиях и применении SQL в геометрической прогрессии.
- Большой спрос SQL на рынке труда. Более 35 000 рабочих мест связаны с использованием SQL, а многие требуют его знания как дополнительного навыка.
У работников организаций, владеющих SQL, есть возможность присоединиться к множеству IT-проектам.
Насколько востребован данный навык на рынке труда
Трендом последних лет стала автоматизация в сфере человеческих ресурсов (HR — англ. human resources) и управлении персоналом. Поэтому на рынке труда у работодателей повышенным спросом пользуются кандидаты на вакансии, владеющие навыком SQL на уровне middle и выше. Более 10% открытых предложений на рынке Украины адресованы такой категории IT-специалистов, как финансовый эксперт внутри своей компании.
Коммерческая реализация навыка SQL по большей части востребована в таких сферах, как: биржевая торговля, финансы и бухгалтерский учет, ИТ-консалтинг, страхование, логистика, реклама и маркетинг.
И в заключение скажем, что изучение SQL и управление БД может показаться довольно сложным делом, но только на первый взгляд. На самом деле обучение построено интуитивно понятно и не занимает много времени. Владение SQL станет для будущего специалиста надежной отправной точкой в организации успешного бизнеса.
Статья размещена с помощью сервиса Collaborator.pro, ИНН – 773209635058
SQL для всех: зачем его учить?

Время на прочтение: 2 минут(ы) Знание языка SQL требуется в вакансиях аналитика, продакт-менеджера, а иногда даже маркетолога. В этой статье расскажем, что это такое и почему язык так популярен.

Профессия: Аналитик данных
Время на прочтение: 2 минут(ы)
SQL (Structured Query Language) – язык структурированных запросов, стандартизированный язык для извлечения, обновления, добавления и удаления данных. С его помощью управляют реляционными базами данных (наборами данных с определенными связями между ними), пишут запросы в БД (например, «найди e-mail клиентов с именем Михаил»).
C помощью языка SQL мы можем “общаться” с базами данных так же, как взаимодействуем человеческим языком с другими людьми.
Для чего пригодится SQL?
Возможность «общения» с БД не безгранична. Представьте, что обученной собаке дали команду, которую она не знает, или слишком сложную задачу. Так и базы данных, понимают узкий перечень запросов. Чаще всего, с помощью SQL решают следующие задачи.
Извлечение данных
Допустим, в вашей БД контакты 10 000 клиентов, и задача найти все контакты, которые добавлены в базу данных 25 февраля. С помощью SQL это получится сделать быстрее, чем вручную.
Изменение данных
Мы нашли контакты, добавленные 25 февраля, но оказалось, что произошел сбой и в выборку попали 5000 лишних пользователей. SQL поможет быстро исправить ошибки на огромном массиве данных. Но будьте осторожны! Внося изменения в базе размером 20 000 контактов, легко наделать еще больше ошибок.
Добавление данных
SQL помогает быстро добавлять в базу большие объемы информации. Например, вам потребовалось загрузить 20 000 контактов конкурентов для дальнейшего анализа. Делать это с помощью SQL быстрее и приятнее!
Аналитик данных
Научитесь работать с большими данными и освойте востребованную профессию. Освоите SQL, Python, алгоритмы Big Data и машинного обучения
Почему именно SQL?
Популярный вопрос: зачем использовать SQL для аналитики, когда есть другие инструменты: Excel и Google-таблицы, Яндекс Метрика и Google Analytics, Tableau.
Слишком много информации
Приложения и сайты собирают терабайты данных о пользователе, а когда пользователей 50 000 или 500 000, то перечисленные инструменты могут не справиться (в том же Excel ограничено количество строк).
Проверяем слишком сложную гипотезу
Например, аналитику дали задачу получить данные, соответствующие сразу 10-20 условиям, и далеко не все сервисы подходят для такой задачи.
Быстрее
Чем больше и сложнее задача по сбору аналитики, тем больше времени занимает процесс настройки. К счастью, SQL справляется со всем этим гораздо быстрее!
Чувствительные данные
Некоторые данные не получится загрузить для корректного анализа в системе аналитики. Например, банковские транзакции (представьте, сколько их совершается ежедневно), работать с ними в Excel или Google Analytics будет проблематично.
Компании не используют конкретный инструмент
В одной компании используют Google Analytics, в другой — Яндекс Метрику, а SQL универсален и применим везде.
Валидация данных
Иногда отчеты в других системах аналитики выглядят подозрительно (например, сильная и неожиданная просадка посетителей сайта). С помощью SQL можно быстро проверить, все ли показатели учтены корректно, или же при формировании отчета произошел сбой.
Скорость, скорость, еще раз скорость
Продакт-менеджеру или маркетологу приходится оперативно добывать данные, чтобы проверить гипотезу. Самому написать 2-3 запроса гораздо быстрее, чем просить аналитика.
Работа с первичными данными
Взаимодействовать с необработанными данными полезно для понимания процессов компании. Работая только с готовыми отчетами, вы рискуете потерять информацию, которая хранится в БД. Зная, какие данные о пользователе собираете, легче строить и проверять гипотезы.
Что такое MySQL, PostgreSQL SQLite?
Часто новичков ставят в тупик такие аббревиатуры как MySQL PostgreSQL, SQLite. Это варианты систем управления реляционными базами данных (СУБД), которые используют компании в своих продуктах. Представьте их как различные инструменты: у каждой свои преимущества и нюансы работы, отличается функционал. Главное, все из них понимают базовые команды SQL, а значит, знать типы запросов важно каждому аналитику, продакт-менеджеру и даже маркетологу.
