NULL++
На прошлой неделе я доделал финальный проект и сдал его. Но пока что фидбэка не было) А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой…
А давайте я немного поясню, что происходит)
Вторая вкладка "Анализ продаж маркетплейса" позволяет понять портрет и поведение клиентской базы. Ответить на вопросы "Кто наши клиенты?" и "Насколько они лояльны?". На ней, кроме индикаторов (которые и так понятны), присутствует ещё несколько табличек.
В списках Топ покупателей по количеству заказов и по сумме затрат можно менять количество значений с помощью селектора.
Таблица RFM-анализа формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА, и выдаёт актуальный результат на заданный период в дашборде.
Когортный анализ формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает % уникальных клиентов от первого периода.
LTV также формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Сам анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает среднюю выручку на уникального клиента.
Вторая вкладка "Анализ продаж маркетплейса" позволяет понять портрет и поведение клиентской базы. Ответить на вопросы "Кто наши клиенты?" и "Насколько они лояльны?". На ней, кроме индикаторов (которые и так понятны), присутствует ещё несколько табличек.
В списках Топ покупателей по количеству заказов и по сумме затрат можно менять количество значений с помощью селектора.
Таблица RFM-анализа формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА, и выдаёт актуальный результат на заданный период в дашборде.
Когортный анализ формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает % уникальных клиентов от первого периода.
LTV также формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Сам анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает среднюю выручку на уникального клиента.
🔥4
NULL++
На прошлой неделе я доделал финальный проект и сдал его. Но пока что фидбэка не было) А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой…
Третья вкладка "Анализ товаров" позволяет оценить эффективность товарного ассортимента. Ответить на вопросы "Какие товары продаются хорошо?", "На каких товарах мы больше всего зарабатываем?" и "Какие товары неликвидны?".
В списках Топ и Антитоп можно менять количество значений с помощью соответствующего селектора.
Особенность таблицы ABC/XYZ-анализа в том, что она (как и на предыдущей вкладке было) формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА и МАСШТАБА. То есть выдаёт актуальный результат на заданный период в дашборде.
+ Есть градация по цвету для ABC/XYZ (зелёный-жёлтый-красный) для быстрого понимания результата.
P.S. на второй вкладке по цветам также сделан RFM-анализ
В списках Топ и Антитоп можно менять количество значений с помощью соответствующего селектора.
Особенность таблицы ABC/XYZ-анализа в том, что она (как и на предыдущей вкладке было) формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА и МАСШТАБА. То есть выдаёт актуальный результат на заданный период в дашборде.
+ Есть градация по цвету для ABC/XYZ (зелёный-жёлтый-красный) для быстрого понимания результата.
P.S. на второй вкладке по цветам также сделан RFM-анализ
🔥4
Всем привет!
Мою работу проверили и дали отличный фидбек. Все советы и замечания я уже поправил, поэтому могу представить на общее обозрение)
Гит: https://github.com/mishandri/DA-final-project
Сам дашборд (светлая тема): https://datalens.yandex/6eiukr5xyukyr?_theme=light
Сам дашборд (тёмная тема): https://datalens.yandex/6eiukr5xyukyr?_theme=dark
А ещё я очень рад, что завершил данный курс обучения. Это было очень классно, познавательно и очень-очень интересно.
В планах у меня теперь завершить курс по "BI-аналитике" (остались финальные задания), а затем я приступлю к курсу "Инженер данных", который тоже обещает быть не менее клёвым
Мою работу проверили и дали отличный фидбек. Все советы и замечания я уже поправил, поэтому могу представить на общее обозрение)
Гит: https://github.com/mishandri/DA-final-project
Сам дашборд (светлая тема): https://datalens.yandex/6eiukr5xyukyr?_theme=light
Сам дашборд (тёмная тема): https://datalens.yandex/6eiukr5xyukyr?_theme=dark
А ещё я очень рад, что завершил данный курс обучения. Это было очень классно, познавательно и очень-очень интересно.
В планах у меня теперь завершить курс по "BI-аналитике" (остались финальные задания), а затем я приступлю к курсу "Инженер данных", который тоже обещает быть не менее клёвым
GitHub
GitHub - mishandri/DA-final-project: Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в БД PostgreSQL…
Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в БД PostgreSQL и визуализацию ключевых метрик через Yandex DataLens. Цель - обеспечить стабильный поток данных дл...
🔥5👏1
Всем привет!
Ведёте ли вы записи того, что возможно потом пригодится?
Перед тем, как я начал учиться на аналитика данных, я просто сохранял все найденные интересные страницы в закладках, а интересные посты в ВК или в ТГ просто в избранном. И там до сох пор большущая куча неразобранных статей, до которых уже очень долгое время не доходят руки, чтобы всё разобрать и каталогизировать.
Я стал задаваться вопросом: а как бы поудобнее всё это начать хранить, чтобы потом ещё и искать было легко.
Простое гугление предлагало использовать всякие сервисы по типу OneNote (в общем-то я его уже использовал, но он слишком тормознутый и глючный как по мне), Evernote (тоже как-то было дело, но отказался из-за ограничений в бесплатной версии) или Notion, который ушёл из России и судя по новостям начал удалять все данные даже тех, у кого была подписка...
Были предложены и другие сервисы, но практически все они либо были платными, либо бесплатные версии были настолько ограничены, что ими было бы невозможно пользоваться.
К тому же, ситуация с Notion показала, как можно потерять все свои записи по желанию их создателей.
И я наткнулся на Obsidian, который умел всё, что мне было необходимо + все данные можно хранить локально в формате MarkDown.
Что мне очень понравилось:
+ Гибкая настройка практически всего, чего можно. Очень много всяких настроек.
+ Приятный и интуитивный интерфейс + куча готовых цветовых схем на любой вкус.
+ Возможность устанавливать всякие расширения.
+ Использование тегов для каталогизации документов.
+ Создание и использование нескольких хранилищ.
Но не обошлось и без минусов... И самый главный - это платная синхронизация между устройствами.
Все советовали создать приватный репозиторий на гитхабе и выгружать всё в него. Но это надо было постоянно делать лишние действия пуши перед редактированием и пуллы после...
Но тут я решил пойти более простым путём и реализовать это всё "своими силами") Почему в кавычках? Потому что это делает за меня Я.Диск =)
Я просто создал папку в Я.Диске, в которой у меня хранятся все мои хранилища данных.
Например, если я правлю документ на компьютере, он сразу же выгружается на мой Я.Диск, а затем синхронизируется с Я.Диском на ноуте. И наоборот. Работает идеально!
На телефоне сделал аналогичную штуку: в Я.Диске можно настроить автоматическую синхронизацию помеченных папок.
К тому же, Я.Диск позволяет восстанавливать удалённые или изменённые файлы, то есть я имею возможность работать с резервными копиями, если вдруг что.
+ в браузере есть расширение
@nullpp #обучение #obsidian #записи
Ведёте ли вы записи того, что возможно потом пригодится?
Перед тем, как я начал учиться на аналитика данных, я просто сохранял все найденные интересные страницы в закладках, а интересные посты в ВК или в ТГ просто в избранном. И там до сох пор большущая куча неразобранных статей, до которых уже очень долгое время не доходят руки, чтобы всё разобрать и каталогизировать.
Я стал задаваться вопросом: а как бы поудобнее всё это начать хранить, чтобы потом ещё и искать было легко.
Простое гугление предлагало использовать всякие сервисы по типу OneNote (в общем-то я его уже использовал, но он слишком тормознутый и глючный как по мне), Evernote (тоже как-то было дело, но отказался из-за ограничений в бесплатной версии) или Notion, который ушёл из России и судя по новостям начал удалять все данные даже тех, у кого была подписка...
Были предложены и другие сервисы, но практически все они либо были платными, либо бесплатные версии были настолько ограничены, что ими было бы невозможно пользоваться.
К тому же, ситуация с Notion показала, как можно потерять все свои записи по желанию их создателей.
И я наткнулся на Obsidian, который умел всё, что мне было необходимо + все данные можно хранить локально в формате MarkDown.
Что мне очень понравилось:
+ Гибкая настройка практически всего, чего можно. Очень много всяких настроек.
+ Приятный и интуитивный интерфейс + куча готовых цветовых схем на любой вкус.
+ Возможность устанавливать всякие расширения.
+ Использование тегов для каталогизации документов.
+ Создание и использование нескольких хранилищ.
Но не обошлось и без минусов... И самый главный - это платная синхронизация между устройствами.
Все советовали создать приватный репозиторий на гитхабе и выгружать всё в него. Но это надо было постоянно делать лишние действия пуши перед редактированием и пуллы после...
Но тут я решил пойти более простым путём и реализовать это всё "своими силами") Почему в кавычках? Потому что это делает за меня Я.Диск =)
Я просто создал папку в Я.Диске, в которой у меня хранятся все мои хранилища данных.
Например, если я правлю документ на компьютере, он сразу же выгружается на мой Я.Диск, а затем синхронизируется с Я.Диском на ноуте. И наоборот. Работает идеально!
На телефоне сделал аналогичную штуку: в Я.Диске можно настроить автоматическую синхронизацию помеченных папок.
К тому же, Я.Диск позволяет восстанавливать удалённые или изменённые файлы, то есть я имею возможность работать с резервными копиями, если вдруг что.
+ в браузере есть расширение
Markdown Web Clipper, которое в один клик делает из страницы md-файлик, готовый для размещения в Obisdian.@nullpp #обучение #obsidian #записи
🔥8👍2
Forwarded from Simulative
Итоговый проект нашего студента по курсу «Аналитик данных»
Сегодня хотим поделиться работой студента Михаила, который успешно завершил курс и получил отличный фидбек от кураторов 🙌
Ссылки на проект:
👩💻 GitHub
📊 Дашборды в светлой теме и тёмной теме
Гордимся такими результатами и рады видеть, как наши студенты продолжают развиваться в аналитике. Желаем Михаилу успехов в следующих шагах — впереди у него курсы по BI-аналитике и инженеру данных💪
📊 Simulative
Сегодня хотим поделиться работой студента Михаила, который успешно завершил курс и получил отличный фидбек от кураторов 🙌
Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в PostgreSQL и визуализацию ключевых метрик через Yandex DataLens. Цель — обеспечить стабильный поток данных для аналитики клиентской активности, продаж и ассортиментной матрицы.
Ссылки на проект:
Гордимся такими результатами и рады видеть, как наши студенты продолжают развиваться в аналитике. Желаем Михаилу успехов в следующих шагах — впереди у него курсы по BI-аналитике и инженеру данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Всем привет!)
Пригласили меня в эфир =) Поделиться своим опытом обучения, и не только
Пригласили меня в эфир =) Поделиться своим опытом обучения, и не только
🔥4
Forwarded from Simulative
Вебинар: как студенты Simulative входят в аналитику с ноги с нуля
Сложно понять, как построить свой карьерный путь? На вебинаре предложим несколько стратегий, которые помогут вам определиться с выбором профессии.
В программе — истории, как маркетолог перешёл в аналитику и вышел на работу в крупную IT компанию, как студенты находят работу ещё до окончания курса, и как преподаватель с восьмилетним опытом стал аналитиком.
➡️ Зарегистрироваться на вебинар
❗️ Встречаемся 11 ноября в 19:00 МСК
🎁 На мероприятии мы разыграем денежные сертификаты на обучение в Simulative. Регистрируйтесь, чтобы узнать, как принять участие в розыгрыше и услышать, как делается карьера в аналитике из первых уст!
➡️ Зарегистрироваться на вебинар
📊 Simulative
Сложно понять, как построить свой карьерный путь? На вебинаре предложим несколько стратегий, которые помогут вам определиться с выбором профессии.
В программе — истории, как маркетолог перешёл в аналитику и вышел на работу в крупную IT компанию, как студенты находят работу ещё до окончания курса, и как преподаватель с восьмилетним опытом стал аналитиком.
А ещё HR-специалист поделится актуальной статистикой по трудоустройству: как за сколько месяцев найти первую работу, и какие ошибки совершают новички при поиске вакансий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Simulative
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Simulative
🎓 Как наши студенты «входят в аналитику с ноги» — истории, которые вдохновляют
Каждый пришёл в аналитику своим путём. Кто-то из маркетинга, кто-то из образования, кто-то вообще из другой сферы. Но всех объединяет одно — желание разобраться в данных и построить новую карьеру.
На нашем вебинаре вы услышите реальные истории студентов Simulative, которые начинали с нуля и уже работают аналитиками. А пока — ловите короткие истории первых героев (в кружочках выше)👆
Ждем вас на вебинаре, чтобы услышать полные версии!
📅 Сегодня, 11 ноября, 19:00 МСК
🎁 Среди участников — розыгрыш сертификатов на обучение!
До встречи!
Каждый пришёл в аналитику своим путём. Кто-то из маркетинга, кто-то из образования, кто-то вообще из другой сферы. Но всех объединяет одно — желание разобраться в данных и построить новую карьеру.
На нашем вебинаре вы услышите реальные истории студентов Simulative, которые начинали с нуля и уже работают аналитиками. А пока — ловите короткие истории первых героев (в кружочках выше)👆
Ждем вас на вебинаре, чтобы услышать полные версии!
📅 Сегодня, 11 ноября, 19:00 МСК
🎁 Среди участников — розыгрыш сертификатов на обучение!
До встречи!
Всем привет!
На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации).
Получается, я уже теперь точно дипломированный и профессиональный аналитик данных.
Бумажный вариант пришлют скоро)
Я очень рад, что всё-таки решил пойти учиться. Узнал много нового и очень хорошо закрепил полученные знания на практических кейсах из реального бизнеса.
Кстати, это один из трёх шагов (дипломов) на пути становления Fullstack-аналитика данных
@nullpp #обучение #диплом
На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации).
Получается, я уже теперь точно дипломированный и профессиональный аналитик данных.
Бумажный вариант пришлют скоро)
Я очень рад, что всё-таки решил пойти учиться. Узнал много нового и очень хорошо закрепил полученные знания на практических кейсах из реального бизнеса.
Кстати, это один из трёх шагов (дипломов) на пути становления Fullstack-аналитика данных
@nullpp #обучение #диплом
🔥9👏4
Всем привет!
Это пост-проверка. Я всё-таки решил добавить комментарии в канал, чтобы можно было что-то тут обсудить (желательно по теме, ахахах). В старых постах, как я понимаю, не будет обсуждений, ну и ладно)
@nullpp #обсуждение
Это пост-проверка. Я всё-таки решил добавить комментарии в канал, чтобы можно было что-то тут обсудить (желательно по теме, ахахах). В старых постах, как я понимаю, не будет обсуждений, ну и ладно)
@nullpp #обсуждение
🔥3❤1👍1
Всем привет!
Когда я делал свой дипломный проект и арендовал виртуальный сервер, при первичной настройке выполнения скриптов по расписанию, я не мог понять почему они не выполняются в нужное время.
Мне подсказали, что нужно бы проверить таймзону самого сервера - и действительно, оказалось, что она была UTC+0 вместо привычной для меня UTC+3. Это я к чему?
К тому, что у СУБД таймзона может как совпадать с сервером, так и отличаться. Да и вообще, при работе с датой-временем надо иметь в виду, что таймзоны могут повлиять на результаты не только работы, но и аналитических выводов, которые можно получить, если мы неправильно их будем интерпретировать из-за этого.
В PostgreSQL есть два основных типа для работы со временем:
-
-
Опять же многое будет зависеть от параметров как на самом сервере, так и от параметров СУБД.
Для определённой сессии можно задать таймзону так:
(кстати, на это нужны определённые права для учётки PostgreSQL.
И при выполнении запросов, например
мы получим данные вида
Мы можем преобразовать таймзону вручную при конкретном запросе (для этого не нужно особых прав):
В результате получим результат вида:
С
Результат:
Результат:
Сменим таймзону:
Выдаст такой же результат:
А вот
Даст нам:
Как видите
Если применить к
Если применить к
Что делать?
1. Храните всё в UTC. Настройте часовой пояс сервера на UTC. Это стандарт де-факто для backend-разработки и избегает путаницы.
2. Используйте тип TIMESTAMPTZ. Позволяет PostgreSQL делать всю грязную работу по конвертации.
3. Преобразование в локальное время делайте на уровне приложения. Ваше приложение лучше знает, в каком часовом поясе находится пользователь. Передавайте данные в UTC, а финальное отображение делайте на клиенте.
#SQL #PostgreSQL #timezone @nullpp
Когда я делал свой дипломный проект и арендовал виртуальный сервер, при первичной настройке выполнения скриптов по расписанию, я не мог понять почему они не выполняются в нужное время.
Мне подсказали, что нужно бы проверить таймзону самого сервера - и действительно, оказалось, что она была UTC+0 вместо привычной для меня UTC+3. Это я к чему?
К тому, что у СУБД таймзона может как совпадать с сервером, так и отличаться. Да и вообще, при работе с датой-временем надо иметь в виду, что таймзоны могут повлиять на результаты не только работы, но и аналитических выводов, которые можно получить, если мы неправильно их будем интерпретировать из-за этого.
В PostgreSQL есть два основных типа для работы со временем:
-
TIMESTAMP(или TIMESTAMP WITHOUT TIME ZONE) - хранит только дату и время, без привязки к часовому поясу. Это просто число, означающее "настенные часы в определённый момент". При сохранении 2023-10-25 15:30:00 база не знает, было это в Лондоне, в Москве или в Токио.-
TIMESTAMPTZ (или TIMESTAMP WITH TIME ZONE) - рекомендуемый к использованию тип. Он не хранит пояс отдельно внутри себя. Вместо этого он конвертирует переданное значение в время по UTC (Всемирное координированное время) для хранения. При извлечении данных он преобразует это UTC-время в часовой пояс текущей сессии.Опять же многое будет зависеть от параметров как на самом сервере, так и от параметров СУБД.
Для определённой сессии можно задать таймзону так:
SET timezone = 'Europe/Moscow';
(кстати, на это нужны определённые права для учётки PostgreSQL.
И при выполнении запросов, например
SELECT doc_dt FROM ticket;
мы получим данные вида
2025-05-12 09:23:48.000 в том случае, если типом поля doc_dt является TIMESTAMP. Впрочем, такой ответ мы получили бы и не устанавливая таймзону перед этим. То есть СУБД принимает "на веру" то, что TIMESTAMP всегда в том часовом поясе, который указан в параметрах.Мы можем преобразовать таймзону вручную при конкретном запросе (для этого не нужно особых прав):
SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
В результате получим результат вида:
2025-05-12 09:23:48.000 +0300. Как видите, в самом конце будет указан часовой пояс, причём такой, какой указан в настройках. Точнее, он его просто "припишет".С
TIMESTAMPZ ситуация иначе. Смещение во времени автоматически записывается в БД. И тогда при применении AT TIME ZONE к полю TIMESTAMPZ, он наоборот преобразует в нужный временной пояс.SET timezone = 'Europe/Moscow';
SELECT doc_dt FROM ticket;
Результат:
2025-05-12 09:23:48.000 +0300SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
Результат:
2025-05-12 09:23:48.000 +0300Сменим таймзону:
SET timezone = 'UTC';
SELECT doc_dt FROM ticket;
Выдаст такой же результат:
2025-05-12 09:23:48.000 +0300
А вот
SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
Даст нам:
2025-05-12 06:23:48.000 +0300
Как видите
AT TIME ZONE - мощный оператор для явного преобразования.Если применить к
TIMESTAMPTZ, он "снимает" пояс и возвращает TIMESTAMP в указанной зоне.Если применить к
TIMESTAMP (без пояса), он "надевает" на него указанный пояс и возвращает TIMESTAMPTZ.Что делать?
1. Храните всё в UTC. Настройте часовой пояс сервера на UTC. Это стандарт де-факто для backend-разработки и избегает путаницы.
2. Используйте тип TIMESTAMPTZ. Позволяет PostgreSQL делать всю грязную работу по конвертации.
3. Преобразование в локальное время делайте на уровне приложения. Ваше приложение лучше знает, в каком часовом поясе находится пользователь. Передавайте данные в UTC, а финальное отображение делайте на клиенте.
#SQL #PostgreSQL #timezone @nullpp
👍5🤔2
Всем привет!
Мой дашборд разместили в DataLens Gallery =) Йээээ
https://datalens.ru/gallery/gx1h48lns7le1
Мой дашборд разместили в DataLens Gallery =) Йээээ
https://datalens.ru/gallery/gx1h48lns7le1
🔥10👏1
Всем привет!
Поделюсь небольшим, так сказать, успехом в учёбе на курсе Дата инженера.
Удалось собрать
@nullpp #генерация_данных #Python #docker #docker_compose #nginx
Поделюсь небольшим, так сказать, успехом в учёбе на курсе Дата инженера.
Удалось собрать
docker compose, гдеДокер 1 с питоном, запускает скрипт по генерации данных, а затем записывает их в Докер 2, где крутится PostgreSQL. А затем Докер 3 отображает это через Nginx по localhost в виде простой таблички@nullpp #генерация_данных #Python #docker #docker_compose #nginx
🔥4👏1
Всем привет!
Я тут немного подумал, чем бы можно было бы разнообразить контент на канале.
Как на счёт того, чтобы выкладывать некоторые задачки (и их решения) на подумать?
Например типа такого:
Задача:
Решение в PostgreSQL:
#Задача #SQL #PostgreSQL #Авиаперелеты
Я тут немного подумал, чем бы можно было бы разнообразить контент на канале.
Как на счёт того, чтобы выкладывать некоторые задачки (и их решения) на подумать?
Например типа такого:
Задача:
Вывести информацию в какие города можно улететь из Парижа (Paris) и сколько времени это займёт?
Решение в PostgreSQL:
SELECT
town_to,
TIMEDIFF(time_in, time_out) as flight_time
FROM
Trip
WHERE
town_from = 'Paris';
#Задача #SQL #PostgreSQL #Авиаперелеты
🔥4❤3
Всем привет!
Сегодня будет ещё одна задачка по той же БД
Задача:
Решение будет в первом комменте
#Задача #SQL #PostgreSQL #Авиаперелеты
Сегодня будет ещё одна задачка по той же БД
Задача:
Выведите пассажиров с самым длинным ФИО. Пробелы, дефисы и точки считаются частью имени.
Решение будет в первом комменте
#Задача #SQL #PostgreSQL #Авиаперелеты
🔥3
NULL++
Всем привет! На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации). Получается, я уже теперь точно дипломированный и профессиональный аналитик данных. Бумажный вариант пришлют скоро) Я очень рад, что всё-таки…
Всем привет!
А вот и второй диплом мне прислали в электронном виде. Теперь я дважды дипломированный аналитик. Посмотрим, как это мне поможет в будущем xD
П.С. Первый диплом я уже получил в бумажном виде. Всё как положено: корочка, вкладыши, +1 к ЧСВ
#Диплом
А вот и второй диплом мне прислали в электронном виде. Теперь я дважды дипломированный аналитик. Посмотрим, как это мне поможет в будущем xD
П.С. Первый диплом я уже получил в бумажном виде. Всё как положено: корочка, вкладыши, +1 к ЧСВ
#Диплом
🔥6🍾1🤓1
Всем привет!
Хочу немного поговорить сегодня о функции
1. Самый простой пример использования - это подсчёт общего количества строк:
Так можно посчитать все строки, включая те, которые содержат
2. Если вместо
то запрос посчитает количество не-
3. Если нужно посчитать уникальные значения, то внутри нужно добавить
Данный способ работает в PostgreSQL, в других СУБД частенько используются другие функции.
А что, если нам необходимо посчитать количество уникальных строк по двум и более параметрам?
Тут нам поможет функция
- Иногда
- Обычно используют какой-то спецсимвол для соединения, чтобы случайно не пропустить что-нибудь.
Например, если взять просто
4. А ещё можно считать количество по условиям:
Или вот так тоже можно:
А ещё, нужно помнить, что функция
В качестве примера, посмотрим распределение покупки товаров по половому признаку:
В результате получим такую таблицу:
#SQL #PostgreSQL #агрегация #count
Хочу немного поговорить сегодня о функции
COUNT в SQL. Данную функцию используют для подсчёта количества строк в таблице/вьюшке/результате запроса.1. Самый простой пример использования - это подсчёт общего количества строк:
SELECT
COUNT(*)
FROM table;
Так можно посчитать все строки, включая те, которые содержат
NULL.2. Если вместо
* вставить название колонки:SELECT
COUNT(col1)
FROM table;
то запрос посчитает количество не-
NULL значений.3. Если нужно посчитать уникальные значения, то внутри нужно добавить
DISTINCT:SELECT
COUNT(DISTINCT col1)
FROM table;
Данный способ работает в PostgreSQL, в других СУБД частенько используются другие функции.
А что, если нам необходимо посчитать количество уникальных строк по двум и более параметрам?
Тут нам поможет функция
CONCAT():SELECT COUNT(DISTINCT CONCAT(col1, ' | ', col2))
FROM table;
- Иногда
col1 и col2 нужно привести к формату строки.- Обычно используют какой-то спецсимвол для соединения, чтобы случайно не пропустить что-нибудь.
Например, если взять просто
CONCAT(col1, col2), то конкатенация значений ab и c будет равна конкатенации значений a и bc: abc. То есть DISTINCT решит, что это одинаковые значения.4. А ещё можно считать количество по условиям:
SELECT
COUNT(CASE WHEN gender = 'F' THEN 1 END) AS F,
COUNT(CASE WHEN gender = 'M' THEN 1 END) AS M
FROM project_data;
Или вот так тоже можно:
SELECT
COUNT(*) FILTER (WHERE gender = 'F') AS F,
COUNT(*) FILTER (WHERE gender = 'M') AS M
FROM project_data;
А ещё, нужно помнить, что функция
COUNT() является агрегирующей, а это значит, что если мы хотим посчиать количество в разрезе како-нибудь параметра (значений столбца), то надо не забывать про GROUP BY.В качестве примера, посмотрим распределение покупки товаров по половому признаку:
SELECT
product_id,
COUNT(CASE WHEN gender = 'F' THEN 1 END) AS F,
COUNT(CASE WHEN gender = 'M' THEN 1 END) AS M
FROM project_data
GROUP BY product_id ;
В результате получим такую таблицу:
product_id|f |m |
----------+---+---+
536| 77| 96|
7004| 81| 75|
19812| 73| 79|
47778| 74| 72|
34354| 79| 89|
4035| 80| 82|
44342| 73| 89|
...|...|...|
#SQL #PostgreSQL #агрегация #count
🔥7
Всем привет!
Ну вот и Новый год! Поздравляю всех с наступающим (у кого-то уже наступившим) Новым 2026 Годом!
Хочу подвести свои итоги года)
В уходящем году я решился сменить свой род деятельности. С начала года начал учиться на Аналитика данных: каждый день по чуть-чуть (когда-то по 20 минут, когда и по 3-4 часа) я очень много изучал SQL, Python (включая всякие интересные библиотеки по анализу и визуализации данных), продуктовые метрики, методы аналитики, различные BI-системы, с трудом вспоминал давнозабытую математическую статистику и даже изучил Excel на совершенно другом уровне)
Попутно я уволился со своей старой работы в "никуда", но пока был в отпуске, нашёл новую работу на позицию BI-аналитика, где уже почти полгода (когда праздники кончатся, уже будет, считай) работаю. И мне очень нравится то, чем я сейчас занимаюсь!
Что ещё? Сдал экзамен по DataLens и получил сертификат. Получил два диплома государственного образца о переквалификации по Аналитике данных и BI-аналитике.
За весь 2025 год я посетил огромную тучу различных вебинаров, наверное, штук 100, не меньше. Там были темы и по аналитике, и по BI, и по ML, и даже по 1С =)
В следующем году я обязательно продолжу развиваться как первоклассный специалист по BI (в первую очередь), аналитике данных и совсем немного в инженерии данных. Может даже захвачу немного DS и ML, тут уж как сложится =)
А ещё, я вчера прошёл собес в компанию, где мне сделали оффер с зп на треть повыше, но компания не в реестре IT... И теперь я в раздумьях: сменить место работы или продолжить свой путь на текущем месте? Может кто что посоветует? =)
Поэтому я хочу пожелать всем моим подписчикам: не бойтесь своих стремлений и желаний, если идти к цели, то вы её обязательно достигнете!
В комментариях, можете поделиться, кто чего достиг в этом году и что планируете в следующем)
@nullpp #поздравления #достижения
Ну вот и Новый год! Поздравляю всех с наступающим (у кого-то уже наступившим) Новым 2026 Годом!
Хочу подвести свои итоги года)
В уходящем году я решился сменить свой род деятельности. С начала года начал учиться на Аналитика данных: каждый день по чуть-чуть (когда-то по 20 минут, когда и по 3-4 часа) я очень много изучал SQL, Python (включая всякие интересные библиотеки по анализу и визуализации данных), продуктовые метрики, методы аналитики, различные BI-системы, с трудом вспоминал давнозабытую математическую статистику и даже изучил Excel на совершенно другом уровне)
Попутно я уволился со своей старой работы в "никуда", но пока был в отпуске, нашёл новую работу на позицию BI-аналитика, где уже почти полгода (когда праздники кончатся, уже будет, считай) работаю. И мне очень нравится то, чем я сейчас занимаюсь!
Что ещё? Сдал экзамен по DataLens и получил сертификат. Получил два диплома государственного образца о переквалификации по Аналитике данных и BI-аналитике.
За весь 2025 год я посетил огромную тучу различных вебинаров, наверное, штук 100, не меньше. Там были темы и по аналитике, и по BI, и по ML, и даже по 1С =)
В следующем году я обязательно продолжу развиваться как первоклассный специалист по BI (в первую очередь), аналитике данных и совсем немного в инженерии данных. Может даже захвачу немного DS и ML, тут уж как сложится =)
А ещё, я вчера прошёл собес в компанию, где мне сделали оффер с зп на треть повыше, но компания не в реестре IT... И теперь я в раздумьях: сменить место работы или продолжить свой путь на текущем месте? Может кто что посоветует? =)
Поэтому я хочу пожелать всем моим подписчикам: не бойтесь своих стремлений и желаний, если идти к цели, то вы её обязательно достигнете!
В комментариях, можете поделиться, кто чего достиг в этом году и что планируете в следующем)
@nullpp #поздравления #достижения
🎄9❤1👍1