SQL и Анализ данных
12.7K subscribers
679 photos
66 videos
3 files
693 links
Базы данных и всё, что с ними связано!

Сотрудничество: @haarrp

РКН № 6766085482
Download Telegram
Forwarded from Data Science. SQL hub
🛠️ Что нового в SQLite — свежие обновления и улучшения

🔗 https://www.sqlite.org/changes.html

SQLite — одна из самых популярных встраиваемых баз данных в мире, и каждое обновление приносит не только исправления, но и серьёзные улучшения производительности и безопасности.

Вот ключевые изменения из последних версий:

🆕 SQLite 3.46.0 (май 2024)

- Добавлена поддержка contentless-delete для таблиц FTS5 — меньше места, выше скорость
- Новый флаг SQLITE_DBCONFIG_STMT_SCANSTATUS — можно отключать сбор статистики по выполнению запросов
- Оптимизации для LEFT JOIN + OR условий в WHERE — запросы выполняются заметно быстрее
- Улучшено поведение WITHOUT ROWID таблиц с составными ключами

🧪 Расширенные тесты:
- SQLite теперь использует дополнительный fuzzing для анализа стабильности ядра при высоких нагрузках и необычных SQL

🧹 Также исправлены:
- Ошибки в индексах при сложной комбинации JOIN + USING
- Утечка памяти при специфическом использовании PRAGMA function_list

💡 SQLite остаётся одной из самых лёгких, надёжных и удобных баз данных, которую можно использовать буквально везде: от браузеров и мобильных приложений до IoT и CLI-утилит.

📚 Полный список изменений — здесь:
https://www.sqlite.org/changes.html

@sqlhub
3👍3🔥2🤨1
🔥 CTE + DELETE — это комбинация общего табличного выражения (Common Table Expression, CTE) и оператора DELETE, которая позволяет удобно удалять строки из таблицы, особенно в случаях, когда удаление зависит от сложного подзапроса или JOIN-ов.

🔍 Что такое CTE?
CTE (WITH выражение) — это временный набор данных, определённый перед основным SQL-запросом.

🧹 Зачем использовать CTE с DELETE?
Упрощает чтение и понимание кода при сложных условиях.

Позволяет использовать JOIN, ROW_NUMBER() и другие функции перед удалением.

Избавляет от подзапросов в WHERE, которые иногда трудно читать.

📌 Пример: Удалить дубликаты по email, оставив только один


WITH duplicates AS (
SELECT id,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
FROM users
)
DELETE FROM users
WHERE id IN (
SELECT id FROM duplicates WHERE rn > 1
);


🧠 Здесь:

CTE duplicates присваивает каждой строке номер внутри группы одинаковых email.

Удаляем все строки, где rn > 1 — то есть дубликаты.

📌 Пример: Удаление с JOIN


WITH to_delete AS (
SELECT u.id
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'cancelled'
)
DELETE FROM users
WHERE id IN (SELECT id FROM to_delete);


📌 Поддержка:
Работает в PostgreSQL, SQL Server, Oracle (с USING или WITH).

В MySQL с 8.0+ CTE поддерживаются, но DELETE с CTE может потребовать подзапрос.
👍127😁2💊2🔥1
Униформа Эксельщика

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
😁535👻4👍3😭1💊1
⚡️ RushDB — это мгновенная база данных, построенная на базе Neo4j, не требующая моделирования, конфигураций, нормализаций данных и идеально подходит для разработки приложений, DS/ML Ops и быстрого прототипирования.

🌟 Принимает любые данные формате JSON, JSONB и CSV, и самостоятельно нормализует данные, создавая связи между данными, расставляет типы данных и лэйблы на основе передаваемых данных.

☁️ Доступна в облаке и селф-хостед.
🛠 API-first и удобные SDK для разработчиков: Python и TypeScript
🚀 Отлично подходит для стартапов, AI-команд и всех, кто работает с графами

🔐 Лицензия: Apache-2.0

🟢 GitHub
🟢Website
📖Docs
Please open Telegram to view this post
VIEW IN TELEGRAM
😁54👍2🔥1
🚀 Вышел стабильный релиз MariaDB 11.8.2 — первая стабильная версия новой ветки с долгосрочной поддержкой (LTS, 5 лет). Также доступен предварительный релиз MariaDB 12.0.1.

🔹 Что нового в 11.8 по сравнению с предыдущим LTS 11.4:

🧠 Векторный поиск
Добавлены возможности из проекта *MariaDB Vector*:
• Новый тип данных VECTOR
• Функции для сравнения векторов: VEC_DISTANCE_EUCLIDEAN(), VEC_DISTANCE_COSINE(), VEC_DISTANCE()
• Поддержка SIMD-ускорений: AVX2/AVX512, ARM, Power10
• Производительность векторных запросов выше Redis, pgvector, qdrant и weaviate

🧭 Поддержка времени до 2106 года
Решена проблема 2038 — TIMESTAMP теперь работает до 2106 года

🌍 Новая кодировка и локаль
По умолчанию теперь utf8mb4, полная поддержка emoji
Обновлены правила сортировки (Collation) до UCA 14.0.0

🔐 Новый механизм аутентификации: PARSEC
• PBKDF2 + ed25519
• Безопасная верификация пароля

💾 Многопоточность в дампе и импорте
mariadb-dump и mariadb-import теперь используют многопоточность
• Поддержка резервного копирования как одной, так и нескольких БД

📈 Ускоренная репликация
• Новый механизм binlog-сегментации
• Асинхронный rollback после сбоев
• Параметр slave_replication_delay_abort_timeout для отмены "зависших" транзакций

🛠️ Новые фичи и команды
• Таблица USERS для контроля доступа
• Команды FLUSH GLOBAL STATUS, REPAIR TABLE ... FORCE, SHOW CREATE SERVER
• Возврат значений типа ROW из хранимых процедур
• Поддержка Oracle-подобных SEQUENCE
• Функции UUID_v4, UUID_v7
FORMAT_BYTES(1000000000) = 953.67 MiB
• Ограничения на размер временных файлов (`max_tmp_session_space_usage`, `max_tmp_total_space_usage`)

⚙️ Оптимизации
• Ускоренные UPDATE/DELETE, SUBSTR(...) = const
• Улучшена работа с виртуальными столбцами
• Авто-оптимизация кодировок

💡 Контекст
MariaDB — форк MySQL, с дополнительными хранилищами и расширенными возможностями, не зависящий от Oracle. Используется в RHEL, SUSE, Fedora, Debian, Arch и проектах вроде Wikipedia и Google Cloud SQL.

📌 Если вы работаете с векторным поиском, большими БД или вам важно долгосрочное сопровождение — MariaDB 11.8 теперь must-have.

https://mariadb.com/kb/en/mariadb-11-4-2-release-notes/
👍72🥰2👀1
Очень полезный репозиторий с советами по визуализации данных.

Множество примеров, комментариев и главное: чёткое объяснение, как делать не надо.

Пригодится и аналитикам, и ученым. GitHub на английском здесь, перевод на русском (неполная версия) здесь.
7🔥4👍2🥰1
🎙️ ElevenLabs представила свою новую модель синтеза речи v3, которая стирает границы между искусственным и человеческим голосом. Новая архитектура позволяет тонко управлять эмоциями, интонациями и даже невербальными звуками вроде смеха или вздохов через специальные аудиотеги в тексте.

Из интересного: поддержка 70+ языков и режим диалога, где модель естественно обрабатывает перебивания и смену эмоций между персонажами. Это открывает новые возможности для создателей аудиокниг, игровых студий и разработчиков чат-ботов. Пока технология находится в раннем доступе, но уже сейчас можно сказать, что это огромный скачок в области TTS.

🔗 Ссылка - *клик*
5👍4🤨3👏2🥰1🥱1
🦆 DuckDB + Python: мощный тандем для аналитики прямо на ноутбуке

Если вы работаете с аналитикой данных и вам важна скорость, гибкость и простота — попробуйте связку DuckDB + Python. Это встроенная колонко-ориентированная СУБД, которая отлично работает с pandas, Parquet и SQL-запросами — прямо в памяти, без сервера.

📌 Что такое DuckDB?
- Лёгкая SQL-база данных
- Работает как SQLite, но оптимизирована под аналитику
- Отлично справляется с файлами Parquet и Arrow
- Идеально для обработки больших наборов данных локально

🔗 Возможности интеграции с Python:
- Прямой запрос к pandas DataFrame:

con.execute("SELECT * FROM df WHERE col > 10").df()

- Работа с файлами:

con.execute("SELECT COUNT(*) FROM 'data.parquet'")

- Использование SQL + pandas + визуализация в одном блоке

💡 Преимущества:
- 🚀 Быстрее pandas при агрегациях и фильтрации
- 🔗 Поддержка Parquet, CSV, JSON, Arrow и др.
- 🧠 SQL как первый язык аналитики — работает из коробки
- 🛠 Не требует отдельного сервера или установки СУБД

🧪 Это отличное решение для data science проектов, анализа больших логов, локальных ETL-задач и экспериментальной работы с данными.

🔍 Подробный гайд


#Python #DuckDB #DataAnalytics #Pandas #SQL #ETL

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85👍4🥰1👏1
🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
2👍1🔥1
Forwarded from Python/ django
🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite!

py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.

📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}

💡 Примеры установки:

pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу


🔧 Пример (SQLAlchemy)


python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None


py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.

Полноценный PostgreSQL — без его тяжеловесности.


Github

@pythonl

#python #sql #PostgreSQL #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🥰3
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ Jan-nano от Menlo Research — модель на базе Qwen3 всего на 4B параметров, созданная для Deep Research.

Модель заточена и оптимизирована для интеграции с Model Context Protocol (MCP).

📊 На SimpleQA (agentic / MCP) — Jan-nano набирает 80.7

Это серьёзный результат для модели такого размера!

Модель работает через Jan — open-source альтернативу ChatGPT, которая запускается локально.

🔍 Jan-nano — ещё один пример того, как компактные модели могут конкурировать с большими моделями благодаря обучению и агентной архитектуре.

HF: https://huggingface.co/Menlo/Jan-nano

@ai_machinelearning_big_data


#LLM #JanNano #MCP #OpenSourceAI
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Database Build - инструмент для работы с базами данным с капелькой нейросетей

Можно написать «Создай базу для пиццерии» и получить готовую структуру с таблицами, связями и диаграммами.

Получившиеся таблицы можно править, генерить в них тестовые данные, а потом импортировать в SQL или задеплоить на Supabase (а скоро подвезут и AWS).

Это бесплатно
9👍4🔥2
🧠 Хитрая SQL-задача на собеседование: "Пропущенный день"

Представь таблицу заказов:

orders (
id INT,
user_id INT,
order_date DATE
)


🎯 Задача: Найти пользователей, у которых были два заказа, сделанных с пропуском ровно одного дня
(например: 1 мая и 3 мая), но без других заказов между ними.

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

---



💡 Решение с LEAD() + NOT EXISTS:


WITH ranked_orders AS (
SELECT
user_id,
order_date,
LEAD(order_date) OVER (PARTITION BY user_id ORDER BY order_date) AS next_order
FROM orders
),
valid_pairs AS (
SELECT
user_id
FROM ranked_orders ro
WHERE DATE_DIFF(ro.next_order, ro.order_date, DAY) = 2
AND NOT EXISTS (
SELECT 1 FROM orders o
WHERE o.user_id = ro.user_id
AND o.order_date > ro.order_date
AND o.order_date < ro.next_order
)
)
SELECT DISTINCT user_id FROM valid_pairs;


🔍 Подвох: многие находят заказы “через день”, но забывают проверить, не было ли чего-то между ними.
Такие задачки отлично проверяют знание оконных функций и аналитического мышления.
11👍5🔥2
🧠 Продвинутая SQL-задача: "Скользящий максимум с условиями"

Допустим, у вас есть таблица transactions:


CREATE TABLE transactions (
id SERIAL PRIMARY KEY,
user_id INT,
amount NUMERIC,
status TEXT,
created_at TIMESTAMP
);


🎯 Задача:
Для каждой транзакции нужно найти максимальный amount:
- За последние 7 дней, включая текущую
- Только по этому же user_id
- Только по статусу 'confirmed'

📥 Ожидаемый вывод:

| id | user_id | amount | created_at | max_amount_last_7d |
|----|---------|--------|--------------------|---------------------|
| 1 | 101 | 100 | 2024-01-01 10:00 | 100 |
| 2 | 101 | 150 | 2024-01-04 12:00 | 150 |
| 3 | 101 | 120 | 2024-01-07 09:00 | 150 |
| 4 | 101 | 90 | 2024-01-15 14:00 | 120 |

🧩 Решение:


SELECT
t1.id,
t1.user_id,
t1.amount,
t1.created_at,
(
SELECT MAX(t2.amount)
FROM transactions t2
WHERE t2.user_id = t1.user_id
AND t2.status = 'confirmed'
AND t2.created_at BETWEEN t1.created_at - INTERVAL '7 days' AND t1.created_at
) AS max_amount_last_7d
FROM transactions t1;


⚠️ Подводные камни:
- Без индексов по user_id, status, created_at запрос будет тормозить
- Используется подзапрос, а не window function, потому что окно — динамическое
- В PostgreSQL стоит учитывать точные границы BETWEEN при сравнении времени

🚀 Навыки, которые проверяются:
- Оптимизация временных окон
- Группировка и фильтрация с условиями
- Агрегации по диапазонам

💡 Усложнение:
Хочешь ещё интереснее? Добавь группировку по разным status, или перепиши на JOIN с LATERAL.
🔥96🥰2😱1
🖥 WrenAI — это open-source AI-ассистент для анализа данных и генерации SQL-запросов (Text-to-SQL)!

🌟 Он позволяет пользователям взаимодействовать с данными с помощью естественного языка и автоматически формировать SQL-запросы, строить диаграммы, отчеты и таблицы.

🔐 Лицензия: AGPL-3.0

🖥 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥3🥰1
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 инъекции

источник

#devops #девопс
12👍7🔥5💊1
🧠 Oracle SQL — совет для продвинутых: аналитические функции > JOIN + GROUP BY

Если ты всё ещё используешь GROUP BY + подзапросы для расчёта рангов, окон и сумм — переходи на аналитические функции. Они читаются проще, работают быстрее и избавляют от лишних джойнов.

🔧 Пример: вместо этого


SELECT department_id, employee_id, salary
FROM (
SELECT department_id, employee_id, salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rnk
FROM employees
)
WHERE rnk = 1;


🔥 Используй:


SELECT *
FROM (
SELECT e.*, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rnk
FROM employees e
)
WHERE rnk = 1;


📌 Что это даёт:
RANK(), DENSE_RANK(), ROW_NUMBER() — вычисляются без лишнего JOIN
PARTITION BY делит данные по группам без агрегирования
OVER (...) даёт гибкость без переписывания логики

Аналитические функции в Oracle — это:
• меньше кода
• выше производительность
• идеально для дашбордов, отчётов и сложной аналитики

🧠 Вывод: перестань бороться с GROUP BY — используй OVER() и управляй данными как потоком.
7💊4👀3👍2🔥2
🌐 DeepBI — инновационная платформа для анализа данных с помощью ИИ, которая превращает сложные запросы в простые диалоги. Этот инструмент позволяет исследовать данные из MySQL, PostgreSQL, CSV и других источников, используя естественный язык вместо SQL.

Инструмент умеет генерировать персистентные визуализации и дашборды через чат-интерфейс. Платформа поддерживает мультиязычность (английский/китайский) и работает на Windows, Linux и macOS. Для тестирования доступны Docker-образы и EXE-установщик.

🤖 GitHub

@data_analysis_ml
3👍3🔥2
Forwarded from Machinelearning
🤖 Gemini Robotics выпускает автономный AI для роботов

Google представили Gemini Robotics On-Device — первую модель, объединяющую зрение, язык и действия, которая работает прямо на роботах, без постоянного подключения к интернету.

🔍 Что делает эту модель особенной:

🔹 Объединяет универсальность и точность Gemini, но работает локально
🔹 Моделька справляется со сложными задачами с двумя руками (манипуляции, сборка, перенос)
🔹 Обучается новым действиям всего по 50–100 демкам

Модель уже поддерживает разные типы роботов — от гуманоидов до промышленных двухруких манипуляторов. И это несмотря на то, что изначально она была обучена только на датасете ALOHA под управлением человеческих инструкций.

🛠 В комплекте выходит SDK Gemini Robotics — для разработчиков, которые хотят дообучить модель под свои нужды, включая тесты в физическом симуляторе MuJoCo.

🌐 Полностью автономная работа — идеально для кейсов с плохой связью или требованиями к высокой скорости отклика.

Gemini Robotics продолжает двигаться к будущему, где AI становится частью физического мира.

👉 Подробнее: https://goo.gle/gemini-robotics-on-device


@ai_machinelearning_big_data

#ai #robots #vlm #google #Gemini
🤨3👍2