Data Science. SQL hub
32.9K subscribers
846 photos
40 videos
36 files
912 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Вы можете присваивать столбцу значение по УМОЛЧАНИЮ при добавлении или изменении строк с помощью ключевого слова DEFAULT



INSERT INTO ... VALUES ( DEFAULT, ... )

UPDATE ... SET ... = DEFAULT


#SQL #ORACLE

@sqlhub
🖥 dbt-core

Громоздкие #SQL запросы трудно читать, понимать и поддерживать.

С помощью dbt вы можете использовать функцию ref, чтобы разбить длинный SQL-запросы на более мелкие компоненты, делая их более читаемыми и удобными для обслуживания.


-- models/total_order_amount.sql
SELECT
order_id,
customer_id,
SUM(order_amount) AS total_amount
FROM
raw_orders
GROUP BY order_id, customer_id


models/average_order_amount.sql:


-- models/average_order_amount.sql
SELECT
customer_id,
AVG(total_amount) AS avg_amount
FROM {{ ref('total_order_amount') }}
GROUP BY customer_id



Github

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Крутая шпаргалка по SQL.

В ней, предоставлены основные примеры запросов, а также пояснения к ним на русском языке.

Сохраняйте, чтобы не потерять

#шпаргалка #sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Полный курс по работе с SQL за 3 часа!

🔥 У этого видео 8 млн просмотров на YouTube, что безусловно говорит о его качестве!

🕞 Продолжительность: 3:16:13

🔗 Ссылка: *клик*

#курс #sql #datascience

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥Полезная шппаргалка по проектированию реляционных баз данных

Реляционные базы данных представляют собой базы данных, которые используются для хранения и предоставления доступа к взаимосвязанным элементам информации. Реляционные базы данных основаны на реляционной модели — интуитивно понятном, наглядном табличном способе представления данных. Каждая строка, содержащая в таблице такой базы данных, представляет собой запись с уникальным идентификатором, который называют ключом. Столбцы таблицы имеют атрибуты данных, а каждая запись обычно содержит значение для каждого атрибута, что дает возможность легко устанавливать взаимосвязь между элементами данных.

Таблицы в такой базе данных также соотносятся друг с другом строго определенным образом. Реляционные базы данных используют целый комплекс инструментов, которые обеспечивают целостность данных, т. е. их точность, полноту и единообразие.

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

#азы #sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Курс: MySQL в phpMyAdmin!

🕞 Продолжительность: 1:43:34

🔗 Ссылка: *клик*

#курс #sql

freecourses
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
🦑 SQL Squid Game: 9 уровней. 1 Аналитик данных. Ваша жизнь на кону 🔫.

Развлечение на выходные - Игра в Кальмара с SQL. Это бесплатный образовательный тренажер по работе с БД, по мотивам Netflix's Squid Game, SQL Murder Mystery и других известных SQL-игр.

О чем игра?
Вы только что были приняты на работу в качестве Аналитика данных в загадочную организацию Squid Game.

Таинственный работодатель, управляющий игрой, пообещал вам полностью удаленную работу, на которой вы будете составлять промпты, работать с pandas и генеративным ИИ

Но, как это обычно бывает в индустрии данных, вас подставили и обманули.

Оказалось, что работа связана с аналитикой данных на SQL, а работа не полностью удаленная, а гибридная: 5 дней в офисе, а 2 дня удаленно.

Не успели вы отказаться от работы , как работодатель приставил к вашей голове пистолет и начал требовать ответов на различные бизнес-вопросы.

Вы должны написать SQL-запросы, чтобы ответить ему - иначе вас ждет печальный конец 💀

📌 Как играть

- На каждом уровне вам будут даны задачи, а также одна или несколько таблиц и их схема.

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

Каждый уровень становится сложнее.

PS: Для прохождения SQL Squid Games, вам нужно хорошо знать SQL.А если хотите освежить свои знания или выучить SQL с нуля, вот 33 интерактивных учебника от Datalemur авторов игры из которых вы узнаете все, что нужно знать, чтобы пройти игру.

📲 Начать игру

@ai_machinelearning_big_data


#sql #tutorial #educationalgame
Media is too big
VIEW IN TELEGRAM
🔥 SQL за полтора часа в одном видео! Полный базовый курс по SQL. Базы данных курс для начинающих!

00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции

📌 источник

#sql #lectures #junior

@sqlhub
This media is not supported in your browser
VIEW IN TELEGRAM
💻 Выбираем базу данных правильно

В мире разработки выбор БД — ключ к производительности, масштабируемости и эффективности. Это не просто SQL vs NoSQL, а поиск инструмента под данные, нагрузку и цели бизнеса. От IoT до ИИ — тип не важен, важна задача. Разбираем:

➡️ SQL
💬 Структурированность, ACID, надёжность.
📦 Для: финансы, CRM, ERP.
📌 Примеры: MySQL, PostgreSQL.

➡️ NoSQL
💬 Document DB: JSON/XML (MongoDB, Couchbase).
🔑 Key-Value: быстрый доступ (Redis, DynamoDB).
📊 Columnar: аналитика (Cassandra, Redshift).
🔗 Graph DB: связи (Neo4j, Cosmos DB).

➡️ Специализированные
📍 Time-Series: метрики, IoT (InfluxDB, TimescaleDB).
📍 Vector DB: ИИ, поиск (Milvus, Pinecone).
📍 Spatial DB: карты (PostGIS, Oracle Spatial).

➡️ Высокая производительность
⚡️ In-Memory: скорость (SAP HANA, MemSQL).
🧱 NewSQL: масштаб + SQL (Spanner, CockroachDB).

➡️ Нишевые
🧬 Blockchain DB: доверие (BigchainDB).
📦 Object-Oriented: кодовая структура (ObjectDB).

🎯 БД — это про масштабируемость, интеллект и гибкость. Выбирайте под задачу, а не по привычке.

#sql #nosql #db

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Релиз: SQL Formatting Preview в T-SQL Analyzer CLI​

В последнем обновлении инструмента T-SQL Analyzer CLI от ErikEJ появилась функция предварительного просмотра форматирования SQL-кода.​

Основные возможности:
Автоматическое форматирование T-SQL скриптов с использованием встроенных правил.​

Интеграция с анализатором кода, позволяющая одновременно проверять и форматировать скрипты.​

Поддержка командной строки, что удобно для автоматизации процессов и интеграции в CI/CD пайплайны.​

🔧 Пример использования:

tsqlanalyze -i "C:\scripts\proc.sql" --format
Эта команда проанализирует и отформатирует указанный SQL-скрипт согласно установленным правилам.​

📌 Подробнее о новых возможностях и инструкциях по установке читайте в официальной документации.​

#sqlserver #tsql #dotnet #cli #devtools

https://github.com/ErikEJ/SqlServer.Rules/tree/master/tools/SqlAnalyzerCli#sql-formatting-preview

@sqlhub
✔️ Wal-listener — это инструмент для прослушивания логов транзакций PostgreSQL (WAL) и конвертации их в удобный для обработки формат JSON.

Возможности

- Прослушивание изменений в PostgreSQL в режиме реального времени.
- Поддержка нескольких слотов репликации.
- Удобный вывод в формате JSON.
- Готов к использованию в качестве сервиса.

Пример использования

1. Создаём слот репликации:

SELECT * FROM pg_create_logical_replication_slot('test_slot', 'wal2json');


2. Запускаем wal-listener:

wal-listener --dsn "host=localhost port=5432 user=postgres dbname=test" --slot test_slot


3. Получаем JSON-объекты при изменениях в базе данных.

https://github.com/ihippik/wal-listener

#devops #девопс #PostgreSQL #sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Хитрая задача по SQL: максимум без агрегатов?

У тебя есть таблица orders со следующими полями:


orders(id, customer_id, order_date, amount)


📌 Задача:
Для каждого клиента (`customer_id`) найти наиболее поздний заказ (по order_date`), **не используя `GROUP BY и `MAX()`**.

🔥 Уловка: DISTINCT ON, TOP 1 WITH TIES и RANK() нельзя — ты ограничен базовым SQL, работающим на большинстве СУБД.

💡 Подумай:
Как ты решишь эту задачу только с JOIN, WHERE и EXISTS?

📥 Ожидаемый результат:
```sql
customer_id | order_id | order_date | amount
------------|----------|------------|--------
1001 | 87 | 2024-12-01 | 320.00
1002 | 91 | 2024-12-05 | 175.00
...

```

🧩 Подсказка:
Можно использовать NOT EXISTS, чтобы выбрать заказы, у которых нет более новых у того же клиента.


SELECT o.*
FROM orders o
WHERE NOT EXISTS (
SELECT 1
FROM orders o2
WHERE o2.customer_id = o.customer_id
AND o2.order_date > o.order_date
)


📎 Такой приём полезен:
• Когда нельзя использовать оконные функции
• Когда ты работаешь на старых версиях СУБД
• Когда нужна универсальность между MySQL / Oracle / SQLite

#SQL #Задача #БазыДанных #DataEngineering #Оптимизация

@sqlhub
🧠 SQL-задача с подвохом: "Невидимые дубликаты"

В таблице users хранятся email-адреса пользователей. Некоторые юзеры регистрируются повторно, маскируя один и тот же email по-разному:

| id | name | email |
|----|----------|--------------------------|
| 1 | Alice | alice@example.com |
| 2 | Bob | ALICE@EXAMPLE.COM |
| 3 | Charlie | alice@example.com |
| 4 | Dave | alice+promo@example.com |
| 5 | Eve | a.l.i.c.e@example.com |


🎯 Цель:
Найти количество уникальных пользователей, если:
- Регистр не учитывается (`alice` = `ALICE`)
- Пробелы игнорируются
- Для @gmail.com:
— Убираются точки в имени
— Всё после + отрезается

SQL-решение:


SELECT COUNT(DISTINCT normalized_email) AS unique_users
FROM (
SELECT
CASE
WHEN email ILIKE '%@gmail.com' THEN
REGEXP_REPLACE(
SPLIT_PART(SPLIT_PART(LOWER(TRIM(email)), '+', 1), '@', 1),
'\.', '', 'g'
) || '@gmail.com'
ELSE
LOWER(REPLACE(TRIM(email), ' ', ''))
END AS normalized_email
FROM users
) AS cleaned;


🔍 Как это работает:

LOWER(TRIM(email)) — убираем пробелы и регистр

SPLIT_PART(..., '+', 1) — отрезаем всё после +

REGEXP_REPLACE(..., '\.', '', 'g') — удаляем точки

Считаем DISTINCT, чтобы получить число уникальных email'ов

🔥 Используй такие трюки для:
• антифрода
• чистки базы
• аналитики поведения пользователей

#SQL #PostgreSQL #Gmail #EmailNormalization #DevTools #AntiFraud #DataCleaning #Analytics