Фреймы оконных функций в PL/SQL Ранее в разборе скрипта я упомянул запись ROWS UNBOUNDED PRECEDING. Подобные записи называются фреймами. Рассмотрим подробнее, какие фреймы вообще бывают и для чего они нужны. Фреймы используются, когда нужно немного изменить поведение оконной функции, чтобы ее логика расчета отличалась от логики по умолчанию. Все фреймы в PL/SQL имеют строго регламентированный вид записи и пишутся только лишь в контексте оконных функций, то есть внутри OVER(). Шаблон фреймов тако...
Data analysis | Анализ данных | DA
Про анализ данных (Data analysis): базы данных (БД), SQL, Python, IT и многое другое, полезное аналитикам и не только По рекламе и остальным вопросам - @connection_07 Реклама на бирже - https://telega.in/channels/business_stats/card
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Анализ пропорций на Python Допустим, у нас есть гипотеза: "Клиенты, получающие зарплату на счёт в банке, в n раз чаще открывают вклады, чем остальные". И есть собранная из БД аналитическая витрина с полями: ▶️client_id - айди клиента ▶️salary_client - был ли клиент когда-либо зарплатным (да/нет)? ▶️any_deposit - открывал ли клиент хотя бы 1 вклад (да/нет)? ▶️during_salary - открыт ли хотя бы 1 вклад в то время, когда клиент был зарплатным (да/нет)? NULL - если клиент не был зарплатным. Проверяют...
Кейс по созданию витрины данных В прошлом посте я упомянул уже подготовленную витрину, которая состояла из таких полей: ▶️client_id - айди клиента ▶️salary_client - был ли клиент когда-либо зарплатным (да/нет)? ▶️any_deposit - открывал ли клиент хотя бы 1 вклад (да/нет)? ▶️during_salary - открыт ли хотя бы 1 вклад в то время, когда клиент был зарплатным (да/нет)? NULL - если клиент не был зарплатным. 🟠Как ее составить из стандартной БД? Предположим, что в БД есть таблицы с такими полями (помимо...
Сегментация с помощью K-means на Python Предположим, что надо сегментировать банковские точки продаж по признакам: ▶️Число клиентов ▶️Доход (млн руб.) ▶️Конверсия в продукты ▶️Среднее время обслуживания (мин) ▶️Жалобы на 1000 клиентов ▶️Число конкурентов рядом Вообще, сегментация через k-means осуществляется по принципу "чем меньше расстояние между значениями, тем лучше". То есть этот метод не различает контекст и будет просто объединять максимально похожие друг на друга точки в одну группу. Это...
Рекурсивные СТЕ в SQL Продолжая тему иерархий, напомню, что имеются такие данные: ▶️Активы ➡️ Дебиторская задолженность ▶️Активы ➡️ Денежные средства ➡️ Касса ▶️Активы ➡️ Денежные средства ➡️ Расчётные счета Если представлять это в виде таблицы, то такая таблица имела бы поля: — account_id - id статьи — name - наименование статьи (активы, ден. ср-ва, касса и т.д.) — parent_id - id родительской статьи 🟠Сегодня речь пойдет о рекурсивных СТЕ как об альтернативе упомянутому ранее методу, потому что...
Иерархии в SQL Oracle Допустим, у нас есть данные из бухгалтерского баланса, представленные иерархически: ▶️Активы ➡️ Дебиторская задолженность ▶️Активы ➡️ Денежные средства ➡️ Касса ▶️Активы ➡️ Денежные средства ➡️ Расчётные счета 🟠Если представлять это в виде таблицы, то такая таблица имела бы поля: — account_id - id статьи — name - наименование статьи (активы, ден. ср-ва, касса и т.д.) — parent_id - id родительской статьи. Например, если у статьи "Активы" account_id = 1, то у статьи "Денежны...
Что такое Data Mesh? Data Mesh - относительно новое понятие в управлении данными, которое используется как альтернатива традиционным DWH. 🟠Главный акцент тут - на децентрализованности. В классическом подходе хранилища данных обслуживает какая-то конкретная специализированная на этом команда. Она, как правило, извлекает данные из источников, трансформирует их и загружает в DWH, которым потом пользуются разные отделы в компании. При таком подходе существуют свои недостатки. Например, при увеличен...
Schema Evolution Эволюция схемы - это способность системы адаптировать структуру данных (таблицы, поля, типы) под новые требования без потери работоспособности всего того, что зависит от бд. Применяется в случаях, когда: ▶️Нужно добавить или удалить столбцы ▶️Нужно изменить тип данных ▶️Меняется допустимость наличия NULL в полях ▶️Меняется значение по умолчанию ▶️Изменяются или добавляются ключи ▶️При денормализации / нормализации таблиц ▶️Нужно переименовывать поля и т.д. 🟠В чем суть Schema Ev...
Что такое реплики баз данных? Начнем с того, что реплика - это копия основной базы данных (или её части). Реплика используется для многих целей. Как пример: ▶️Для отказоустойчивости. Если с основной БД что-то случается, то реплика становится на её место и перенимает весь её функционал до тех пор, пока проблема не устранится. В тот момент, когда основная БД становится снова доступна, она, как правило, сама становится репликой. А старая реплика становится основной БД. ▶️Для снижения нагрузки на ос...
RFM-анализ на SQL Один из довольно часто встречающихся на практике кейсов - сегментация пользователей (или RFM-анализ). Цель анализа - разделить клиентов на группы (сегменты), чтобы понять, кто из них самый ценный, кто требует внимания, а кого, возможно, уже не вернуть. Осуществляется на основе: ▶️Recency — когда последний раз покупал? ▶️Frequency — сколько раз покупал? ▶️Monetary — сколько потратил? Базовый запрос выглядит так: WITH clients as ( SELECT customer_id, CURRENT_DATE - MAX(order_date...