💥 Решаем необычную задачку по SQL
На днях мы наткнулись на очень любопытную задачку и решили, что стоит решить её вместе с вами!
🟢 Условие
Нам дана таблица подписок, которая состоит из
Например, если период подписки
Пример входной таблицы и результата запроса смотрите на карточке 1 под постом
🔵 Решение
На первый взгляд понятно, что мы должны сравнить каждую подписку с каждой другой. Давайте рассмотрим даты начала и конца подписки
Тогда, если
- Начало = 2020-01-01
- Конец = 2020-01-31
- Начало = 2020-01-16
- Конец = 2020-01-26
Здесь мы видим, что
Алгоритм мы уже подобрали, но есть несколько нюансов:
- мы должны убедиться, что пользователь не сравнивается с его собственной подпиской;
- используем
Видим, что для каждого пользователя существует другой пользователь в случае, если даты совпадают. Для
Теперь, объединив все это вместе, мы можем сгруппировать по полю
📚 Интересная задача, согласитесь? Не часто встречаются соединения по неравенству. Вернее, use кейс встретить можно часто, но не всегда вспоминается, что так тоже можно! Если вдруг вы забыли о такой крутой опции - приглашаем в наш недавний пост про Non-Equi JOIN!
На днях мы наткнулись на очень любопытную задачку и решили, что стоит решить её вместе с вами!
🟢 Условие
Нам дана таблица подписок, которая состоит из
даты начала и окончания подписки для каждого пользователя. Нам нужно написать запрос, который возвращает true/false для каждого пользователя на основе совпадения дат с другими пользователями. Например, если период подписки
user1 совпадает с периодом подписки любого другого пользователя, запрос должен возвращать значение True для user1.Пример входной таблицы и результата запроса смотрите на карточке 1 под постом
🔵 Решение
На первый взгляд понятно, что мы должны сравнить каждую подписку с каждой другой. Давайте рассмотрим даты начала и конца подписки
UserA как startA и endA, и аналогично для UserB - startB и endB.Тогда, если
startA ≤ endB и endA ≥ startB, то мы можем сказать, что два диапазона дат перекрываются. Давайте возьмем два примера - сравним U1 и U2:- Начало = 2020-01-01
- Конец = 2020-01-31
- Начало = 2020-01-16
- Конец = 2020-01-26
Здесь мы видим, что
startA(2020-01-01) меньше, чем endB(2020-01-26), и аналогично, endA(2020-01-31) больше, чем startB(2020-01-16), и, следовательно, можно сделать вывод, что даты перекрывают друг друга. Аналогично, если сравнить U1 и U4 (из таблицы), условия не выполнятся и вернется значение false.Алгоритм мы уже подобрали, но есть несколько нюансов:
- мы должны убедиться, что пользователь не сравнивается с его собственной подпиской;
- используем
LEFT JOIN таблицы с самой собой, чтобы сопоставить пользователя с каждым другим пользователем, который удовлетворяет нашему условию.SELECT *Результат запроса смотрите на карточке 2 под постом 😉
FROM subnoscriptions AS s1
LEFT JOIN subnoscriptions AS s2
ON s1.user_id != s2.user_id
AND s1.start <= s2.end
AND s1.end >= s2.start
Видим, что для каждого пользователя существует другой пользователь в случае, если даты совпадают. Для
user1 есть 2 строки, указывающие на то, что он совпадает с 2 пользователями. А для user4 соответствующий id равен null, что указывает на то, что он не совпадает ни с каким другим пользователем.Теперь, объединив все это вместе, мы можем сгруппировать по полю
s1.user_id и просто проверить, существует ли какое-либо значение true для пользователя, где s2.user_id НЕ равен NULL.SELECT s1.user_id,Мы использовали
(CASE WHEN s2.user_id
IS NOT NULL THEN 1
ELSE 0 END) AS overlap
FROM subnoscriptions AS s1
LEFT JOIN subnoscriptions AS s2
ON s1.user_id != s2.user_id
AND s1.start <= s2.end
AND s1.end >= s2.start
GROUP BY s1.user_id
CASE чтобы присвоить 1 и 0 в зависимости от значения s2.user_id для данного пользователя. Конечный результат смотрите на карточке 3 под постом. 📚 Интересная задача, согласитесь? Не часто встречаются соединения по неравенству. Вернее, use кейс встретить можно часто, но не всегда вспоминается, что так тоже можно! Если вдруг вы забыли о такой крутой опции - приглашаем в наш недавний пост про Non-Equi JOIN!
🔥13❤4👍4
🔥 Супер-удобная функция Matplotlib
Это, должно быть, самая крутая вещь, которую мы когда-либо узнавали о
🤔 Обычно, для создания графиков мы используем метод
- это ограничивает нашу гибкость при создании макета;
- иногда получаются ошибки индексации и некоторые другие неловкости.
💡 Вместо этого мы можем использовать метод
Например, расположение строк:
- AB
- AC
Создаст три подграфика, в которых:
- подграфик
- подграфик
- подграфик
Затем создайте подграфик в определенной области, просто через доступ к словарю
#python #visualization
Это, должно быть, самая крутая вещь, которую мы когда-либо узнавали о
Matplotlib. 🤔 Обычно, для создания графиков мы используем метод
plt.subplots(). Но иногда это превращается в довольно громоздкие конструкции. А еще:- это ограничивает нашу гибкость при создании макета;
- иногда получаются ошибки индексации и некоторые другие неловкости.
💡 Вместо этого мы можем использовать метод
plt.subplot_mosaic(). Так, мы сможем создать график и расположить его как угодно, определив структуру графика простой строкой. Например, расположение строк:
- AB
- AC
Создаст три подграфика, в которых:
- подграфик
A будет занимать весь первый столбец- подграфик
B будет занимать верхнюю половину второго столбца- подграфик
C будет занимать нижнюю половину второго столбцаax = fig.subplot_mosaic("""AB
AC""")
ax['A'].plot(...) # область А
ax['B'].plot(...) # область B
ax['C'].plot(...) # область C
Результат смотрите под постомЗатем создайте подграфик в определенной области, просто через доступ к словарю
ax по ключу ('A', 'B' или 'C' ).type(ax)📌 Попробуйте вместе с нами!
dict
ax['A'].plot(...) # область А
ax['B'].plot(...) # область B
ax['C'].plot(...) # область C
import matplotlib.pyplot as pltСкажите, классная функция?! С помощью нее гораздо проще создавать дашборды 😉
import numpy as np
fig = plt.figure(
layout="constrained",
figsize = (8,6))
mosaic = """abc
add
eee"""
ax = fig.subplot_mosaic(mosaic)
x = np.linspace(0.1, 1, 10)
ax['a'].plot(x, np.sqrt(x))
ax['b'].scatter(x, x**2)
ax['c'].scatter(x, np.log(x))
ax['d'].bar([1,2,3,4,5],
[1,2,3,4,5])
ax['e'].hist(
np.random.normal(0,1, 100))
plt.show();
#python #visualization
🔥13😱7🤩5
Приглашаем к нам в команду - Технический автор / Методист 🔥
На связи Андрон, CEO IT Resume & Simulative. И сегодня я с хорошей новостью - мы расширяем команду и ищем крутого технического автора / методиста 🔥
Если коротко - ищем в команду человека, который будет заниматься созданием задач, уроков, статей, постов, автотестов по теме аналитики и программирования по всем нашим продуктам. Результаты вашей работы будут видеть тысячи человек каждый месяц - это очень вдохновляет 😍
🔗 Подробнее про вакансию и как откликнуться - по ссылке: https://merciful-cobra-6c3.notion.site/086bc4211c0f4fb38ea0cd2df6bd69bb?pvs=4
Желаю удачи и до скорой встречи у нас в команде 😉
На связи Андрон, CEO IT Resume & Simulative. И сегодня я с хорошей новостью - мы расширяем команду и ищем крутого технического автора / методиста 🔥
Если коротко - ищем в команду человека, который будет заниматься созданием задач, уроков, статей, постов, автотестов по теме аналитики и программирования по всем нашим продуктам. Результаты вашей работы будут видеть тысячи человек каждый месяц - это очень вдохновляет 😍
🔗 Подробнее про вакансию и как откликнуться - по ссылке: https://merciful-cobra-6c3.notion.site/086bc4211c0f4fb38ea0cd2df6bd69bb?pvs=4
Желаю удачи и до скорой встречи у нас в команде 😉
🔥5❤2🤩2
📚 Секреты с SQL собеседований: Изучаем констраинты в PostgreSQL!
Привет, друзья! Сегодня мы углубимся в мир
⭐️ Что такое констраинты в PostgreSQL?
Констраинты – это правила или ограничения, которые налагаются на данные в таблицах базы данных. Они гарантируют соблюдение определенных правил при вставке или изменении данных, помогая избежать ошибок и несогласованных значений.
🔍 Типы констраинтов
1. PRIMARY KEY (
2. FOREIGN KEY (
3. UNIQUE (
4. CHECK (проверка): Устанавливает условие, которое должно быть истинным для вставки или обновления данных в таблице.
Пример:
Вопросы о констраинтах часто задают на собеседованиях, чтобы убедиться, что вы хорошо разбираетесь в работе с БД и понимаете, как обеспечить целостность данных. И хотя аналитикам редко приходится формировать таблицы - это спрашивают практически на каждом собеседовании. А предупрежден - значит вооружен!
👉 Подготовиться к любому техническому собеседованию поможет Симулятор собеседования аналитика → задачи с собеседований в топовые компании, тестовые онлайн-собеседования, вопросы и кейсы и много другое!
#sql #interview_problems
Привет, друзья! Сегодня мы углубимся в мир
SQL и обсудим одну из важных тем – констраинты! Если вы готовитесь к собеседованию на должность, связанную с SQL, то обязательно стоит освоить эту тему. Констраинты в PostgreSQL помогают обеспечивать целостность данных и поддерживать ограничения, защищающие информацию.⭐️ Что такое констраинты в PostgreSQL?
Констраинты – это правила или ограничения, которые налагаются на данные в таблицах базы данных. Они гарантируют соблюдение определенных правил при вставке или изменении данных, помогая избежать ошибок и несогласованных значений.
🔍 Типы констраинтов
1. PRIMARY KEY (
первичный ключ): Обеспечивает уникальность значений в столбце и предотвращает ввод значения NULL.CREATE TABLE products (
product_no integer PRIMARY KEY,
name text,
price numeric
);
2. FOREIGN KEY (
внешний ключ): Связывает значения в столбце с значениями в другой таблице, обеспечивая ссылочную целостность данных.-- например создадим внешний ключ к прошлой таблице в таблице orders
CREATE TABLE orders (
order_id integer PRIMARY KEY,
product_no integer REFERENCES
products (product_no),
quantity integer
);
3. UNIQUE (
уникальный): Гарантирует уникальность значений в столбце. Причем, в отличие от PRIMARY KEY - не гарантирует отсутствие NULL-значений. Так как два NULL значения для PostgreSQL - различны 🙂CREATE TABLE products (
product_no integer UNIQUE,
name text,
price numeric
);
-- или для группы столбцов сразу
CREATE TABLE example (
a integer,
b integer,
c integer,
UNIQUE (a, c)
);
-- причем в таком формате,
уникальными должны быть только
сочетания этих столбцов, а
значения по отдельности
уникальными могут и не быть :)
4. CHECK (проверка): Устанавливает условие, которое должно быть истинным для вставки или обновления данных в таблице.
Пример:
CREATE TABLE products (🚀 Почему это важно для собеседований?
product_no integer,
name text,
price numeric CHECK (price > 0)
);
-- ограничили цену товара положительными значениями
Вопросы о констраинтах часто задают на собеседованиях, чтобы убедиться, что вы хорошо разбираетесь в работе с БД и понимаете, как обеспечить целостность данных. И хотя аналитикам редко приходится формировать таблицы - это спрашивают практически на каждом собеседовании. А предупрежден - значит вооружен!
👉 Подготовиться к любому техническому собеседованию поможет Симулятор собеседования аналитика → задачи с собеседований в топовые компании, тестовые онлайн-собеседования, вопросы и кейсы и много другое!
#sql #interview_problems
❤11👍7🔥7
🔥 7 полезных применений Underscore в Python
Сегодня давайте поговорим о таком незаметном, но очень полезном символе - нижнее подчеркивание или
1️⃣ Имя переменной в цикле
Это, наверное, знакомо всем. В ситуациях, когда вам не нужно далее использовать переменную цикла - можно не придумывать ей имя, а просто задать
Чтобы сделать большие числа более понятными, можно использовать подчеркивания для разделения разрядов. Ваш код будет намного чище и легче читаться! 👀
Двойные нижние подчеркивания позволяют нам написать магические методы:
Если вам нужно сделать атрибут приватным в классе, добавьте двойное подчеркивание в начале. Это защитит вашу переменную от случайного переопределения. 🔒
Если вы хотите обозначить переменную для внутреннего использования, добавьте одиночное подчеркивание в начале имени. Это поможет избежать конфликтов и понять, что эта переменная предназначена для внутренних целей. 💡
6️⃣ Конфликты с ключевыми словами
Если вам нужно использовать имя, которое совпадает с зарезервированным словом, добавьте одиночное подчеркивание в конец имени:
Когда вам нужно использовать результат предыдущего вычисления, просто введите
Сегодня давайте поговорим о таком незаметном, но очень полезном символе - нижнее подчеркивание или
underscore (_). Эти маленькие символы на самом деле ответственны за широкий функционал. Какой? Давайте посмотрим:1️⃣ Имя переменной в цикле
Это, наверное, знакомо всем. В ситуациях, когда вам не нужно далее использовать переменную цикла - можно не придумывать ей имя, а просто задать
underscore:for _ in range(10):2️⃣ Разделение цифр
pass
Чтобы сделать большие числа более понятными, можно использовать подчеркивания для разделения разрядов. Ваш код будет намного чище и легче читаться! 👀
100000000000003️⃣ Магические методы
# 10000000000000
10_000_000_000_000
# 10000000000000
Двойные нижние подчеркивания позволяют нам написать магические методы:
class MyClass:4️⃣ Приватность
def __init__(self) :
self.variable = 10
Если вам нужно сделать атрибут приватным в классе, добавьте двойное подчеркивание в начале. Это защитит вашу переменную от случайного переопределения. 🔒
self.__attr = 105️⃣ Одиночное подчеркивание для внутренних переменных
Если вы хотите обозначить переменную для внутреннего использования, добавьте одиночное подчеркивание в начале имени. Это поможет избежать конфликтов и понять, что эта переменная предназначена для внутренних целей. 💡
# file.pyИ десерт!
_internal = 10
from file import *
_variable
# NameError: name '_variable' is not defined
6️⃣ Конфликты с ключевыми словами
Если вам нужно использовать имя, которое совпадает с зарезервированным словом, добавьте одиночное подчеркивание в конец имени:
def foo(class = "object"):7️⃣ Последнее вычисленное значение
... # не сработает ❌
def foo(class_ = "object"):
... # сработает ✅
Когда вам нужно использовать результат предыдущего вычисления, просто введите
_, и Python даст вам последнее значение. Вот так легко и удобно! 😎5 + 10💫 Надеемся, что эти маленькие хитрости сделают ваш опыт еще более приятным. Поделитесь с нами, какие секреты Underscore в Python вы знаете и любите использовать!
# 15
_
# 15
👍20🔥10❤3
🔥 DAU/MAU - ключевые продуктовые метрики
Сегодня мы поговорим о ключевых метриках использования продукта, которые помогают оценить активность пользователей и вовлеченность. Эти метрики являются основой для понимания того, насколько успешно работает ваш продукт и насколько довольны им пользователи. Итак,
🔵 Как эти метрики стали использоваться?
DAU/MAU был популярным показателем из-за Facebook, который популяризировал метрику. В результате, когда они начали говорить об этом, другие приложения часто стали оцениваться по тем же ключевым показателям эффективности.
🟢 Что такое DAU?
🟣 Что такое MAU?
📈 Как увеличить?
Важно активно работать над улучшением пользовательского опыта, внедрять новые функции и привлекательный контенты.
Не все должно использоваться ежедневно, чтобы быть ценным. По другую сторону находятся продукты, использование которых - скорее эпизодическое, но каждое взаимодействие имеет большое значение. И здесь
> В Uber, например, самые выгодные поездки - это поездки в аэропорты, премиум поездки для важных выходов, деловых поездок и т. д. Это происходит не каждый день, и хотя есть люди, использующие Uber для поездок на работу, это не есть стандартный сценарий использования.
🟡 Что сделать?
Если ваш
Аналогично, возможно, частота использования увеличивается в корреляции с чем-то. Можно проследить за этим и предположить, что, увеличивая эту переменную,
Наконец, может быть,
Научитесь считать, анализировать и правильно интерпретировать продуктовые метрики в нашем 👉 Симуляторе «Аналитик данных» 👈!
#продуктовые_метрики
Сегодня мы поговорим о ключевых метриках использования продукта, которые помогают оценить активность пользователей и вовлеченность. Эти метрики являются основой для понимания того, насколько успешно работает ваш продукт и насколько довольны им пользователи. Итак,
DAU и MAU!🔵 Как эти метрики стали использоваться?
DAU/MAU был популярным показателем из-за Facebook, который популяризировал метрику. В результате, когда они начали говорить об этом, другие приложения часто стали оцениваться по тем же ключевым показателям эффективности.
🟢 Что такое DAU?
DAU (Daily Active Users) – это метрика, которая показывает количество уникальных пользователей, активно использующих ваш продукт или сервис в течение одного дня. 🟣 Что такое MAU?
MAU (Monthly Active Users) – это метрика, измеряющая количество уникальных пользователей, которые заходят на вашу платформу в течение месяца. MAU предоставляет гораздо более обширную картину о популярности продукта и его росте на более длительном временном отрезке.📈 Как увеличить?
Важно активно работать над улучшением пользовательского опыта, внедрять новые функции и привлекательный контенты.
Обратная связь от пользователей – ваш лучший друг!
‼️ НО!Не все должно использоваться ежедневно, чтобы быть ценным. По другую сторону находятся продукты, использование которых - скорее эпизодическое, но каждое взаимодействие имеет большое значение. И здесь
DAU/MAU - неподходящая метрика.> В Uber, например, самые выгодные поездки - это поездки в аэропорты, премиум поездки для важных выходов, деловых поездок и т. д. Это происходит не каждый день, и хотя есть люди, использующие Uber для поездок на работу, это не есть стандартный сценарий использования.
🟡 Что сделать?
Если ваш
DAU/MAU не очень высок, то посмотрите на свою основную пользовательскую базу. Какой % ваших пользователей был активным каждый день на прошлой неделе? Что они делали? Как вы собираетесь привлечь больше?Аналогично, возможно, частота использования увеличивается в корреляции с чем-то. Можно проследить за этим и предположить, что, увеличивая эту переменную,
DAU/MAU со временем будет расти.Наконец, может быть,
DAU/MAU просто не для вас. Иногда вам не нужно быть приложением каждого дня, чтобы быть успешными. Может быть клиенты используют ваш продукт 2 раза в год, но он приносит им большую ценность, а вам - крупную сумму денег!Научитесь считать, анализировать и правильно интерпретировать продуктовые метрики в нашем 👉 Симуляторе «Аналитик данных» 👈!
#продуктовые_метрики
🔥10❤6👍5
Кому в аналитике работать хорошо? 🏖
В наших проектах мы ежемесячно помогаем десяткам ребят с разным опытом найти свою работу мечты в аналитике. Кто-то устраивается BI-аналитиком, кто-то находит свое призвание в продуктовой аналитике, а кто-то тащится от маркетинга.
Но абсолютно каждый раз перед принятием оффера мы вместе с ребятами оцениваем - а насколько вообще в компании работать классно, интересно и перспективно? Ведь это супер важно для карьерного роста - попасть в проект, который позволяет тебе расти вместе с бизнесом, в котором ты работаешь, за счет супер-интересных задач и супер-амбициозной команды😎
И одна из таких компаний, которую мы всегда рекомендуем двумя руками - Яндекс, а в частности его подразделения Яндекс 360 и Yandex Cloud (наверняка вы пользуетесь их продуктами, признайтесь)🔥 Они наши давние партнеры - в разное время там работало, как минимум, несколько десятков наших ребят.
А сегодня они по старой дружбе попросили рассказать вам о двух классных вакансиях - а мы не могли отказать🕺 Так что налетайте, пока они еще актуальны)))
* Developer Advocate Data Platform
Если коротко: Нужно помогать Яндексу продвигать Yandex Cloud среди разработчиков. Условия - отличные. Задачи - супер интересные и нестандартные. А строчка в резюме с таким звучным названием вакансии - вообще кайф)))
Важная информация:Админ канала уже откликнулся на вакансию, так что не затягивайте - конкуренция плотна я))
🔗 Ссылка на вакансию: ссылка
* Аналитик-разработчик в области автоматизации процессов ИБ
Рекламу анализируют многие. Многие анализируют HR. Еще больше анализируют продукт. А кто анализирует безопасность? 😏
Правильный ответ: те, кто не растерялся и первым откликнулся на эту кайфовую вакансию 😁
🔗 Ссылка на вакансию: ссылка
В общем, если вы развиваетесь в аналитике и кайфуете от работы в крутых командах и проектах - вам в Яндекс. Больше и добавить нечего - просто залетайте по ссылкам и будет вам счастье)
В наших проектах мы ежемесячно помогаем десяткам ребят с разным опытом найти свою работу мечты в аналитике. Кто-то устраивается BI-аналитиком, кто-то находит свое призвание в продуктовой аналитике, а кто-то тащится от маркетинга.
Но абсолютно каждый раз перед принятием оффера мы вместе с ребятами оцениваем - а насколько вообще в компании работать классно, интересно и перспективно? Ведь это супер важно для карьерного роста - попасть в проект, который позволяет тебе расти вместе с бизнесом, в котором ты работаешь, за счет супер-интересных задач и супер-амбициозной команды
И одна из таких компаний, которую мы всегда рекомендуем двумя руками - Яндекс, а в частности его подразделения Яндекс 360 и Yandex Cloud (наверняка вы пользуетесь их продуктами, признайтесь)
А сегодня они по старой дружбе попросили рассказать вам о двух классных вакансиях - а мы не могли отказать
* Developer Advocate Data Platform
Если коротко: Нужно помогать Яндексу продвигать Yandex Cloud среди разработчиков. Условия - отличные. Задачи - супер интересные и нестандартные. А строчка в резюме с таким звучным названием вакансии - вообще кайф)))
Важная информация:
* Аналитик-разработчик в области автоматизации процессов ИБ
Рекламу анализируют многие. Многие анализируют HR. Еще больше анализируют продукт. А кто анализирует безопасность? 😏
Правильный ответ:
В общем, если вы развиваетесь в аналитике и кайфуете от работы в крутых командах и проектах - вам в Яндекс. Больше и добавить нечего - просто залетайте по ссылкам и будет вам счастье)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
🚀 Ищем преподавателя по AB-тестам и аналитике! 🚀
Мы, команда IT Resume, ищем энергичного и вдохновленного преподавателя, готового поделиться своими знаниями и страстью к анализу данных и AB-тестам!
📋 Обязанности:
- Подготовка обучающих материалов
- Составление интересных задач по теме AB-тестирования
- Запись видеоуроков для наших студентов
📌 Требования:
- Опыт работы на аналогичных курсах приветствуется, но не обязателен
- Опыт работы с AB-тестами является большим плюсом
💼 Условия:
- Сдельная оплата
- Гибкий график и возможность работы из дома
- Оплата за готовый материал
- Поддержка студентов, если вам интересно, оплачивается отдельно и помесячно
📩 Для начала, давайте поговорим - свяжитесь с Анной Даниловой, чтобы узнать больше о вакансии.
Присоединяйтесь к нам и помогайте студентам освоить мир аналитики и AB-тестирования! 🔥
Мы, команда IT Resume, ищем энергичного и вдохновленного преподавателя, готового поделиться своими знаниями и страстью к анализу данных и AB-тестам!
📋 Обязанности:
- Подготовка обучающих материалов
- Составление интересных задач по теме AB-тестирования
- Запись видеоуроков для наших студентов
📌 Требования:
- Опыт работы на аналогичных курсах приветствуется, но не обязателен
- Опыт работы с AB-тестами является большим плюсом
💼 Условия:
- Сдельная оплата
- Гибкий график и возможность работы из дома
- Оплата за готовый материал
- Поддержка студентов, если вам интересно, оплачивается отдельно и помесячно
📩 Для начала, давайте поговорим - свяжитесь с Анной Даниловой, чтобы узнать больше о вакансии.
Присоединяйтесь к нам и помогайте студентам освоить мир аналитики и AB-тестирования! 🔥
❤4🔥4
🔥 Ошибки при использовании джоинов 🔥
Давайте обсудим некоторые ключевые аспекты работы с джоинами в SQL, на которые стоит обратить внимание, чтобы избежать ошибок и недоразумений.
🔑 Сохранение данных в приоритете
При написании запросов с джоинами, особенно с транзитивными связями, всегда задавайте себе вопрос:
❓Какие данные мне важно не потерять?
Выбор правильного типа джоина имеет огромное значение, потому что неверный выбор может привести к некорректным результатам. Часто бывает так:
1️⃣ Вы выбираете джоин, который кажется логичным.
2️⃣ Вы не замечаете потенциальных проблем.
Давайте рассмотрим этот момент на примере:
⁉️ Почему так произошло?
Что, если в таблице problem есть строки, в которых company_id = NULL? Тогда такие строки будут исключены из результата, ведь в таблице company поле id - первичный ключ и не содержит NULL.
❗️Чтобы избежать потери данных, всегда помните о выборе правильного типа джоина:
Помните об этом важном аспекте при работе с джоинами, чтобы получать точные и полные результаты!
🔗 Узнайте больше полезностей в Симуляторе 👉 «Аналитик данных» 👈
#sql
Давайте обсудим некоторые ключевые аспекты работы с джоинами в SQL, на которые стоит обратить внимание, чтобы избежать ошибок и недоразумений.
🔑 Сохранение данных в приоритете
При написании запросов с джоинами, особенно с транзитивными связями, всегда задавайте себе вопрос:
❓Какие данные мне важно не потерять?
Выбор правильного типа джоина имеет огромное значение, потому что неверный выбор может привести к некорректным результатам. Часто бывает так:
1️⃣ Вы выбираете джоин, который кажется логичным.
2️⃣ Вы не замечаете потенциальных проблем.
Давайте рассмотрим этот момент на примере:
SELECT *На первый взгляд, этот запрос кажется корректным, и результаты выглядят нормально. Однако, если внимательно проанализировать, вы увидите, что множество записей из таблицы problem просто исчезли 😱
FROM problem p
JOIN page p2
ON p.page_id = p2.id
JOIN company c
ON p.company_id = c.id
⁉️ Почему так произошло?
Что, если в таблице problem есть строки, в которых company_id = NULL? Тогда такие строки будут исключены из результата, ведь в таблице company поле id - первичный ключ и не содержит NULL.
❗️Чтобы избежать потери данных, всегда помните о выборе правильного типа джоина:
SELECT *Используя LEFT JOIN, вы сохраните все записи из problem и соответствующие им записи из company, где
FROM problem p
JOIN page p2
ON p.page_id = p2.id
LEFT JOIN company c
ON p.company_id = c.id
problem.company_id=NULL, будут иметь пустые значения.Помните об этом важном аспекте при работе с джоинами, чтобы получать точные и полные результаты!
🔗 Узнайте больше полезностей в Симуляторе 👉 «Аналитик данных» 👈
#sql
❤17🔥9👍7🤩4
🔥 Базовая Шпаргалка по Pandas 🔥
Pandas - один из самых основных и важных инструментов для работы с данными в Python. Он предоставляет множество удобных функций для загрузки, обработки, и анализа данных.
Мы собрали шпаргалку, в которой все основные функции, которые пригодятся вам в повседневной работе с Pandas:
✅ Импорт данных: Загрузка данных из разных источников.
✅ Исследование данных: Ознакомление с данными, просмотр первых и последних строк, получение информации о типах данных.
✅ Извлечение информации из датафреймов: Выбор столбцов и строк, выполнение различных операций.
✅ Добавление и удаление данных: Добавление новых столбцов и строк, удаление лишних данных.
✅ Фильтрация: Выбор данных по условию, множественные условия.
✅ Сортировка: Сортировка данных по столбцам, множественная сортировка.
✅ Агрегирование: Группировка данных, вычисление статистических показателей, подсчет уникальных значений.
И для удобства мы сделали для вас notebook 😊
Сохраняйте и пользуйтесь 👇
https://colab.research.google.com/drive/1XOF8oQB3kzs0Yxt17XdtGy8IFNudvp4c?usp=sharing
Если у вас есть какие-либо дополнения, не стесняйтесь оставлять в комментариях! 🐼
#python #pandas
Pandas - один из самых основных и важных инструментов для работы с данными в Python. Он предоставляет множество удобных функций для загрузки, обработки, и анализа данных.
Мы собрали шпаргалку, в которой все основные функции, которые пригодятся вам в повседневной работе с Pandas:
✅ Импорт данных: Загрузка данных из разных источников.
✅ Исследование данных: Ознакомление с данными, просмотр первых и последних строк, получение информации о типах данных.
✅ Извлечение информации из датафреймов: Выбор столбцов и строк, выполнение различных операций.
✅ Добавление и удаление данных: Добавление новых столбцов и строк, удаление лишних данных.
✅ Фильтрация: Выбор данных по условию, множественные условия.
✅ Сортировка: Сортировка данных по столбцам, множественная сортировка.
✅ Агрегирование: Группировка данных, вычисление статистических показателей, подсчет уникальных значений.
И для удобства мы сделали для вас notebook 😊
Сохраняйте и пользуйтесь 👇
https://colab.research.google.com/drive/1XOF8oQB3kzs0Yxt17XdtGy8IFNudvp4c?usp=sharing
Если у вас есть какие-либо дополнения, не стесняйтесь оставлять в комментариях! 🐼
#python #pandas
👍15🔥8❤6
Персональная онлайн-экскурсия в Симулятор 🔥
Небольшая предыстория - на этой неделе я выбирал себе курс по английскому языку. Просмотрел более 20 компаний, сходил на вебинары, посмотрел на демо-версии. И знаете, что больше всего смущает и останавливает от покупки?
А то, что только после покупки я узнаю, за что я реально заплатил и что реально получил 🥲 Получается, беру кота в мешке за N тысяч рублей. Волнительно. Поэтому мы решили запустить для вас бесплатную онлайн-экскурсию в наш Симулятор «Аналитик данных»! 😍
За 20 минут на онлайн-созвоне в Google Meet/Zoom мы:
🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату
🔸Поможем приоритизировать обучение и выстроим четкий образовательный трек
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
Хотите уже на этапе обучения решать кейсы из реального бизнеса? Запишитесь к нам на онлайн-экскурсию - мы поможем сделать обучение эффективным!
🎁 Бонусы для участников экскурсии:
- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
Небольшая предыстория - на этой неделе я выбирал себе курс по английскому языку. Просмотрел более 20 компаний, сходил на вебинары, посмотрел на демо-версии. И знаете, что больше всего смущает и останавливает от покупки?
А то, что только после покупки я узнаю, за что я реально заплатил и что реально получил 🥲 Получается, беру кота в мешке за N тысяч рублей. Волнительно. Поэтому мы решили запустить для вас бесплатную онлайн-экскурсию в наш Симулятор «Аналитик данных»! 😍
За 20 минут на онлайн-созвоне в Google Meet/Zoom мы:
🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату
🔸Поможем приоритизировать обучение и выстроим четкий образовательный трек
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
Хотите уже на этапе обучения решать кейсы из реального бизнеса? Запишитесь к нам на онлайн-экскурсию - мы поможем сделать обучение эффективным!
🎁 Бонусы для участников экскурсии:
- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
🔥5❤4👍2👎1
🔥 Симулятор «Аналитик данных» — обучение стало доступнее!
Спешим поделиться классной новостью! Мы расширили способы оплаты обучения и теперь:
→ Мы принимаем платежи с любых карт, с российских и зарубежных.
→ Предоставляем беспроцентную рассрочку на обучение на 3, 6, 12 и 24 (!) месяца. Это не кредит — все проценты мы берем на себя. Сотрудничаем с банками Тиньков, Сбером и Хоум Кредит банком.
→ Можем давать вам внутреннюю рассрочку, если у вас нет возможности взять ее от РФ банка — просто напишите нам на почту clients@itresume.ru, мы поможем 💪🏻
→ Если вы из Беларуси и вам необходима рассрочка — напишите нам на почту clients@itresume.ru 😉
Симулятор «Аналитик данных» — это обучающая программа, где студенты:
🔹 учатся аналитике данных на реальных коммерческих задачах и кейсах;
🔹 пополняют своё портфолио и работают с универсальным инструментарием;
🔹получают оффер после обучения, не имея за плечами настоящего опыта на стороне компании.
А вы готовы присоединиться к нам? 👉 ссылка
Спешим поделиться классной новостью! Мы расширили способы оплаты обучения и теперь:
→ Мы принимаем платежи с любых карт, с российских и зарубежных.
→ Предоставляем беспроцентную рассрочку на обучение на 3, 6, 12 и 24 (!) месяца. Это не кредит — все проценты мы берем на себя. Сотрудничаем с банками Тиньков, Сбером и Хоум Кредит банком.
→ Можем давать вам внутреннюю рассрочку, если у вас нет возможности взять ее от РФ банка — просто напишите нам на почту clients@itresume.ru, мы поможем 💪🏻
→ Если вы из Беларуси и вам необходима рассрочка — напишите нам на почту clients@itresume.ru 😉
Симулятор «Аналитик данных» — это обучающая программа, где студенты:
🔹 учатся аналитике данных на реальных коммерческих задачах и кейсах;
🔹 пополняют своё портфолио и работают с универсальным инструментарием;
🔹получают оффер после обучения, не имея за плечами настоящего опыта на стороне компании.
А вы готовы присоединиться к нам? 👉 ссылка
❤4🔥3🤩2👍1👎1
🔥 Заглядываем в Мир версионного контроля
Привет, коллеги - разработчики! Сегодня мы рассмотрим важные состояния файлов в Git.
Git - это ядро современного сотрудничества и версионного контроля в мире программирования.
1️⃣ Неотслеживаемое (Untracked)
- Это файлы, которые созданы, но Git не знает о них. Они находятся в состоянии "untracked".
- Чтобы начать отслеживание файла, используйте команду git add <имя файла>, и он перейдет в состояние "staged".
2️⃣ Измененное (Modified)
- Если вы изменяете файлы, которые уже отслеживаются Git, они переходят в состояние "modified".
- Git сохраняет информацию о том, какие строки и какие части файлов были изменены.
3️⃣ Подготовленное (Staged)
- Здесь находятся файлы, готовые к следующему коммиту. Вы выбираете, что включить в коммит.
4️⃣ Закомиченное (Committed)
- После коммита файлы становятся закомиченными и сохраняются в истории проекта.
- Состояние "staged" становится пустым, но состояние "modified" может содержать изменения.
Git - это не просто инструмент, это язык, на котором разговаривают разработчики 👩💻🧑💻👨💻
Не забудьте поделиться вашим опытом в комментариях!
_ _ _ _ _ _ _ _ _ _ _
Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах? Просто запишитесь на нашу бесплатную онлайн-экскурсию!
За час на онлайн-созвоне в Google Meet/Zoom мы:
🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
🎁 Бонусы для участников экскурсии:
- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
#git
Привет, коллеги - разработчики! Сегодня мы рассмотрим важные состояния файлов в Git.
Git - это ядро современного сотрудничества и версионного контроля в мире программирования.
1️⃣ Неотслеживаемое (Untracked)
- Это файлы, которые созданы, но Git не знает о них. Они находятся в состоянии "untracked".
- Чтобы начать отслеживание файла, используйте команду git add <имя файла>, и он перейдет в состояние "staged".
2️⃣ Измененное (Modified)
- Если вы изменяете файлы, которые уже отслеживаются Git, они переходят в состояние "modified".
- Git сохраняет информацию о том, какие строки и какие части файлов были изменены.
3️⃣ Подготовленное (Staged)
- Здесь находятся файлы, готовые к следующему коммиту. Вы выбираете, что включить в коммит.
4️⃣ Закомиченное (Committed)
- После коммита файлы становятся закомиченными и сохраняются в истории проекта.
- Состояние "staged" становится пустым, но состояние "modified" может содержать изменения.
Git - это не просто инструмент, это язык, на котором разговаривают разработчики 👩💻🧑💻👨💻
Не забудьте поделиться вашим опытом в комментариях!
_ _ _ _ _ _ _ _ _ _ _
Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах? Просто запишитесь на нашу бесплатную онлайн-экскурсию!
За час на онлайн-созвоне в Google Meet/Zoom мы:
🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
🎁 Бонусы для участников экскурсии:
- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL
🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
#git
❤3👍3🔥2
🤩 Обновление в Симуляторе «Собеседования аналитика»!
У нас новости! Мы расширили опции тарифов на Симуляторе «Собеседования аналитика», и обучение теперь стало еще приятнее и продуктивнее.
Что мы добавили:
🔸 бессрочный доступ ко всем материалам курса
🔸 поддержку наставника по любым вопросам 24/7
🔸 еще больше продуктовых кейсов и задач с технических собеседований — вас ждет настоящая «прожарка» ваших знаний и навыков 😉
Подробнее о тарифах и опциях на сайте 👉 ссылка 👈
У нас новости! Мы расширили опции тарифов на Симуляторе «Собеседования аналитика», и обучение теперь стало еще приятнее и продуктивнее.
Что мы добавили:
🔸 бессрочный доступ ко всем материалам курса
🔸 поддержку наставника по любым вопросам 24/7
🔸 еще больше продуктовых кейсов и задач с технических собеседований — вас ждет настоящая «прожарка» ваших знаний и навыков 😉
Подробнее о тарифах и опциях на сайте 👉 ссылка 👈
❤2👍2🔥2
🤓 Повторяем вопросы к собеседованиям 😎
❓Чем авторизация отличается от аутентификации?
Аутентификация — процедура проверки подлинности, например проверка подлинности пользователя путем сравнения введенного им пароля с паролем, сохраненным в базе данных. Авторизация — предоставление определенному лицу или группе лиц прав на выполнение определенных действий.
❓Почему базы данных называются реляционными?
Потому что данные в них хранятся в виде таблиц. Также бывают нереляционные бд, в которых данные хранятся иначе, например в формате словарей или графов.
❓Чем left join отличается от inner join?
inner join возвращает строки, содержащие совпадения в обоих таблицах, left join — все строки из левой таблицы, даже если в правой нет совпадений.
❓Что такое foreign key (внешний ключ)?
Внешний ключ SQL — это ключ, используемый для объединения двух таблиц. Иногда его также называют ссылочным ключом. Внешний ключ — это столбец или комбинация столбцов, значения которых соответствуют Первичному ключу в другой таблице.
🚀 Присоединяйтесь к курсу 👉 Симулятор Собеседования!
Будем готовиться вместе 💪
#interview_problems
❓Чем авторизация отличается от аутентификации?
Будем готовиться вместе 💪
#interview_problems
🔥15👍9😁1🤩1