CODERIKK
91 subscribers
68 photos
59 links
Лучший авторский контент 💙
По вопросам: @AgentCoderikkBot
Изучаем Python, SQL и tg-ботов
Download Telegram
Знаешь что такое DWH? 📊

🔸DWH (Data Warehouse) – это хранилище данных, которое используется для анализа и отчетности. Оно позволяет собирать, хранить и обрабатывать большие объемы данных из различных источников. Благодаря DWH компании могут принимать обоснованные решения на основе фактов и цифр.

Существует несколько основных видов DWH:

🔹Традиционные DWH – это классические решения, которые используются уже долгое время. Они обычно базируются на реляционных базах данных и предоставляют мощные инструменты для аналитики.

🔹Cloud DWH – это относительно новое направление, которое предполагает хранение данных в облаке. Это обеспечивает масштабируемость, гибкость и возможность работы с данными из любой точки мира.

🔹Big Data DWH – это решения, специально адаптированные для работы с большими объемами данных. Они позволяют справляться с огромными массивами информации и проводить сложные аналитические расчеты.

#CODERIKK #DWH #SQL
Виды соединений в SQL 🛠

🔸SQL предоставляет мощные инструменты для работы с данными, и одним из ключевых аспектов является использование соединений (JOINs). В этом посте мы рассмотрим все виды соединений в SQL, их применение и цели.

🔹INNER JOIN
Описание: Соединяет строки из двух таблиц, возвращая только те строки, где совпадают значения в указанных столбцах.
Применение: Часто используется для получения данных, где есть соответствие в обеих таблицах.

🔹LEFT JOIN (или LEFT OUTER JOIN)
Описание: Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если нет совпадения, в правой таблице будут NULL значения.
Применение: Полезен для получения всех данных из одной таблицы и только соответствующих данных из другой.

🔹RIGHT JOIN (или RIGHT OUTER JOIN)
Описание: Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если нет совпадения, в левой таблице будут NULL значения.
Применение: Менее популярен, но используется для получения всех данных из правой таблицы.

🔹FULL JOIN (или FULL OUTER JOIN)
Описание: Возвращает строки, где есть совпадения в одной из таблиц или обеих таблицах. Если нет совпадений, возвращает NULL для недостающих столбцов.
Применение: Используется для объединения всех данных из обеих таблиц.

🔹CROSS JOIN
Описание: Возвращает декартово произведение строк двух таблиц. Каждая строка из первой таблицы соединяется с каждой строкой из второй таблицы.
Применение: Используется реже из-за объема возвращаемых данных, но полезен для генерации всех возможных комбинаций.

🔹SELF JOIN
Описание: Соединение таблицы с самой собой. Часто используется для сравнения строк в одной таблице.
Применение: Полезен для иерархических данных или когда требуется сравнение строк.

🔸Соединения позволяют:
1) Объединять данные из нескольких таблиц.
2) Уменьшать избыточность данных.
3) Выполнять сложные запросы для получения нужной информации.
4) Оптимизировать процесс извлечения данных.

🔸Соединения — это фундаментальная часть работы с реляционными базами данных, делая SQL мощным инструментом для анализа и манипуляции данными.

#Coderikk #SQL #DataScience #Database
SQL соединения бывают не только сбоку, но и «снизу» 🙈

Сегодня хочу поделиться с вами интересным взглядом на SQL соединения. Обычно мы привыкли думать о соединениях "сбоку", представляя себе привычные операции JOIN, которые объединяют строки из двух таблиц по заданному условию. Но что если я скажу вам, что соединения могут быть и "снизу"?

🔸Соединения "сбоку" – это то, к чему мы привыкли. Включают INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN. Все эти операции выполняются по горизонтальной оси, объединяя строки из одной таблицы со строками другой таблицы:

🔹INNER JOIN: возвращает строки, которые имеют совпадения в обеих таблицах.
🔹LEFT JOIN: возвращает все строки из левой таблицы и совпадающие строки из правой таблицы.
🔹RIGHT JOIN: возвращает все строки из правой таблицы и совпадающие строки из левой таблицы.
🔹FULL JOIN: возвращает все строки, если есть совпадения в одной из таблиц.

🔸Соединения "снизу" – это менее очевидные, но не менее важные операции UNION и UNION ALL. Они объединяют результаты нескольких SELECT-запросов вертикально:

🔹UNION: объединяет результаты двух или более SELECT-запросов, удаляя дубликаты.
🔹UNION ALL: объединяет результаты двух или более SELECT-запросов, включая все дубликаты.

🔸Пример: Предположим, у нас есть две таблицы: employees и managers.

-- Соединение "сбоку" (INNER JOIN)
SELECT employees.name, managers.name
FROM employees
INNER JOIN managers ON employees.manager_id = managers.id;

-- Соединение "снизу" (UNION)
SELECT name FROM employees
UNION
SELECT name FROM managers;


В первом случае мы получаем только тех сотрудников, которые имеют менеджера. Во втором случае – список всех сотрудников и менеджеров, но без дубликатов.

Использование UNION и UNION ALL может быть очень полезным, когда нужно собрать результаты из нескольких запросов в единый список, например, для отчетности.

Надеюсь, этот небольшой экскурс в мир SQL соединений был полезным и интересным для вас! Если у вас есть вопросы или хотите узнать больше – пишите в комментариях! 💬

#CODERIKK #SQL
Сегодня мы поговорим о том, что общего между тремя важными терминами из различных инструментов для работы с данными: ВПР в Excel, merge в Pandas и JOIN в SQL. Несмотря на то, что они используются в разных средах, все эти функции выполняют схожую задачу – объединение данных из разных источников.

🔸ВПР (VLOOKUP) в Excel
ВПР (Вызов по параметру строки) – это функция Excel, которая используется для поиска значения в одном столбце и возврата соответствующего значения из другого столбца.

=ВПР(A2; Лист2!A:B; 2; ЛОЖЬ)

Этот пример ищет значение из ячейки A2 на листе Лист2 в столбце A и возвращает значение из столбца B в той же строке.

🔸merge в Pandas
Это метод библиотеки Pandas в Python, который используется для объединения DataFrame'ов по определенным ключам или столбцам.
import pandas as pd

df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value': [4, 5, 6]})

merged_df = pd.merge(df1, df2, on='key', how='inner')
print(merged_df)

Этот пример объединяет два DataFrame по ключевому столбцу key и использует тип соединения inner, который возвращает только совпадающие записи.

🔸 JOIN в SQL
Это операция, которая используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.
SELECT A.*, B.*
FROM TableA A
JOIN TableB B ON A.key = B.key

Этот запрос объединяет таблицы TableA и TableB по общему столбцу key и возвращает строки, где значения в этом столбце совпадают.

🔸Общее между ВПР, merge и JOIN
Все три функции выполняют задачу объединения данных:
🔹Поиск и сопоставление: Все эти методы ищут совпадающие значения в разных источниках данных и объединяют их.
🔹Ключи для объединения: Они используют ключевые столбцы или поля для определения, какие строки данных должны быть объединены.
🔹Типы объединений: В случае с merge и JOIN можно использовать различные типы объединений, такие как inner, outer, left, и right, что определяет, какие данные включать в результат объединения.

🔸Заключение
Независимо от инструмента, будь то Excel, Pandas или SQL, умение объединять данные является важным навыком для анализа и обработки данных. Эти функции помогают эффективно работать с большими наборами данных, делая процесс анализа более удобным и продуктивным.

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Excel #Python #Pandas #SQL #Данные #Программирование #Обучение
Вопросы с собеседований #27

🔹Что такое SQL и для чего он используется?

🔸
SQL (Structured Query Language) — это язык программирования, используемый для управления и манипуляции данными в базах данных. SQL позволяет выполнять запросы к базе данных, извлекать, обновлять, вставлять и удалять данные, а также управлять структурой базы данных.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Шардирование в SQL #1

🔸Это метод горизонтального разделения данных, при котором таблица базы данных разделяется на более мелкие, управляемые части, называемые "шардами". Каждая шарда хранит подмножество данных и располагается на отдельном сервере или узле базы данных. Это позволяет масштабировать базу данных путем добавления новых серверов, а не увеличения мощности одного сервера.

🔹Преимущества шардирования

🔸Масштабируемость: Позволяет обрабатывать большие объемы данных и увеличивать производительность базы данных путем добавления новых серверов.

🔸Производительность: Уменьшает нагрузку на один сервер, распределяя запросы и операции между несколькими серверами.

🔸Отказоустойчивость: Повышает отказоустойчивость системы за счет распределения данных и операций между несколькими узлами. Сбой одного узла не приводит к полной недоступности данных.

🔸Улучшение времени отклика: Разгружает отдельные сервера, что улучшает время отклика на запросы.

➡️Читайте нас в Telegram и Сетке

#Coderikk #SQL
Шардирование в SQL #2

🔹Основные подходы к шардированию

🔸Горизонтальное шардирование: разделение данных по строкам. Например, при шардировании таблицы пользователей по диапазонам идентификаторов (ID).

🔸Вертикальное шардирование: разделение данных по столбцам. Каждая шарда хранит подмножество столбцов таблицы.

🔸Диапазонное шардирование: данные разделяются на основе значений ключа шарда в определенных диапазонах.

🔸Хэш-шардирование: данные распределяются между шардами на основе хэш-функции, применяемой к ключу шарда.

🔸Географическое шардирование: данные разделяются на основе географической локации.

➡️Читайте нас в Telegram и Сетке

#Coderikk #SQL
Вопросы с собеседований #28

🔹Объясните разницу между INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN.

🔸INNER JOIN: Возвращает только те строки, которые имеют совпадения в обеих таблицах.
🔸LEFT JOIN: Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если нет совпадений, возвращаются NULL для столбцов правой таблицы.
🔸RIGHT JOIN: Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если нет совпадений, возвращаются NULL для столбцов левой таблицы.
🔸FULL JOIN: Возвращает все строки из обеих таблиц. Если нет совпадений, возвращаются NULL для столбцов отсутствующих строк.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #29

🔹Как можно получить уникальные значения из столбца в SQL?

🔸
Используйте оператор DISTINCT, чтобы получить уникальные значения из столбца.

SELECT DISTINCT column_name
FROM table_name;


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #30

🔹Что такое агрегатные функции и приведите примеры.

🔸
Агрегатные функции выполняют вычисления на наборе значений и возвращают одно значение.

Примеры включают:
🔸COUNT(): Подсчитывает количество строк.
🔸SUM(): Вычисляет сумму значений.
🔸AVG(): Вычисляет среднее значение.
🔸MAX(): Находит максимальное значение.
🔸MIN(): Находит минимальное значение.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #31

🔹Как создать временную таблицу и какие у нее ограничения?

🔸
Временные таблицы используются для хранения данных временно в рамках текущего сеанса или транзакции. Они создаются с помощью CREATE TEMPORARY TABLE. Временные таблицы автоматически удаляются после завершения сеанса или транзакции.

CREATE TEMPORARY TABLE temp_table (
id INT,
value VARCHAR(100)
);



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #32

🔹Как использовать подзапросы в SQL?

🔸
Подзапросы — это запросы, которые выполняются внутри другого запроса. Они могут использоваться в SELECT, INSERT, UPDATE, и DELETE. Подзапросы могут быть в WHERE, FROM или SELECT частях основного запроса.

SELECT employee_id, name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #33

🔹Объясните разницу между WHERE и HAVING.

🔸WHERE: Используется для фильтрации строк перед агрегацией. Применяется к строкам таблицы.
🔸HAVING: Используется для фильтрации групп строк после агрегации. Применяется к результатам группировки.

SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 10;


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #34

🔹Как выполнить обновление данных в таблице?

🔸
Для обновления данных используется оператор UPDATE, который позволяет изменить существующие строки в таблице. Не забудьте использовать WHERE для ограничения обновлений.

UPDATE employees
SET salary = salary * 1.05
WHERE department_id = 2;


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #35

🔹Как удалить дублирующиеся строки в таблице?

🔸
Для удаления дублирующихся строк сначала можно использовать CTE (Common Table Expression) с функцией ROW_NUMBER() или RANK(), чтобы идентифицировать дубликаты, а затем удалить их.

WITH cte AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY id) AS row_num
FROM table_name
)
DELETE FROM cte
WHERE row_num > 1;


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #36

🔹Как использовать оконные функции в SQL и приведите примеры?

🔸
Оконные функции выполняют расчеты на наборе строк, определенном оконной функцией, не изменяя результат строки. Они используются с оператором OVER().

Примеры оконных функций:
🔸ROW_NUMBER(): Присваивает уникальный номер строкам в пределах окна.
🔸RANK(): Присваивает ранг строкам с учетом их значений и порядков.
🔸SUM(), AVG(): Выполняют агрегацию в пределах окна.


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL