SQL и Анализ данных


Channel's geo and language: Russia, Russian
Category: Technologies


Базы данных и всё, что с ними связано!
Сотрудничество: @haarrp
РКН № 6766085482

Related channels

Channel's geo and language
Russia, Russian
Statistics
Posts filter


SQL с подвохом: могут ли IS NULL и IS NOT NULL одновременно вернуть false?

Что выведет PostgreSQL?
SELECT
ROW(1, NULL) IS NULL AS a,
ROW(1, NULL) IS NOT NULL AS b,
NOT (ROW(1, NULL) IS NULL) AS c;

Назови значения a, b, c.


Video is unavailable for watching
Show in Telegram
Как SQLite превращает числа в текст в 2 раза быстрее? Трюк с парами цифр


Обычно число переводят в строку по одной цифре, деля на 10 снова и снова. SQLite делит на 100 и берёт готовую пару символов из строки со всеми комбинациями от 00 до 99. Делений вдвое меньше, а результат получается тот же.

https://youtube.com/shorts/HIGIWINACL4?si=7b36rnwPk08g2QPi


В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области RecSys 🔥

Конференция AI Driver & RecSys — главное событие года для тех, кто создаёт, исследует и развивает рекомендательные системы.

🔝 Весь день ведущие эксперты индустрии из крупнейших IT-компаний проведут на площадке Сбера, чтобы обсудить:
— главные тренды и вызовы RecSys
— реальные кейсы и новейшие исследования
— передовые IT-решения для рекомендательных систем

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

📍Офис Сбер, Москва, Кутузовский проспект, 32.

Участие бесплатное!
Количество мест для очного участия ограничено – успейте оставить заявку по ссылке ⚡️


Жиз


📝 5 уровней ИИ-агентов: от промпта до продакшена

Context, loop, Jev, harness и evals: разбираем пять слоёв, которые превращают промпт в надёжного ИИ-агента в продакшене, с примерами кода.

Вокруг ИИ-агентов сейчас крутятся пять модных терминов: context engineering, loop engineering, Jev engineering, harness engineering и eval engineering. Кажется, что это конкурирующие подходы, но на деле это пять слоёв одной системы, и каждый отвечает на свой вопрос. Автор популярного гайда в X под ником Yarchi предлагает простую метафору: представьте, что вы наняли нового сотрудника. Модель это сам человек, а пять слоёв описывают всё, что его окружает: что лежит у него на столе, работает ли он по чек-листу или сам решает, что делать дальше, кто сортирует ему почту, в каком офисе он сидит и какой экзамен сдаёт каждый месяц.

Разберём каждый слой: что это, как работает и как построить его своими руками.

https://uproger.com/5-urovnej-ii-agentov-ot-prompta-do-prodakshena/


UPDATE — оператор обновления данных в MySQL 🗂️

Если в таблице нужно изменить значение в уже существующей строке, используют команду UPDATE. Она позволяет обновлять записи точечно, но важно правильно задать условие: без него изменения могут затронуть всю таблицу.
UPDATE products
SET price = 50500
WHERE id = 1;

Этот запрос меняет значение price только у записи с id = 1.

С помощью UPDATE можно изменить сразу несколько полей:
UPDATE products
SET price = 78500, quantity = 3
WHERE id = 2;

Этот запрос обновляет параметры price и quantity у записи с id = 2.

💡 UPDATE используют, когда нужно:

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

🔗 SQL — это база для работы с базами.
Если хотите не просто понять одну команду, а уверенно собирать запросы и менять данные без ошибок, регистрируйтесь на бесплатный мини-курс «MySQL для новичков» от Академии Selectel ➡️

Программа состоит из коротких уроков, которые помогут пройти путь от установки и настройки СУБД до создания таблиц, управления пользователями и основных операций с данными.

Реклама. АО "Селектел". erid:2W5zFHzH7Eh


🧠 SQL-задача с подвохом

Есть таблица транзакций:


CREATE TABLE transactions (
id int PRIMARY KEY,
user_id int,
ts timestamp,
amount int
);

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

Начальный баланс — 0.

Но есть важное условие:

все операции с одинаковым ts происходят одновременно, поэтому порядок строк внутри одного timestamp учитывать нельзя.

Пример:


10:00 +100
11:00 -80
11:00 -30
11:00 +20
12:00 +50


В 11:00 изменение баланса должно считаться как:


-80 - 30 + 20 = -90


То есть баланс:


10:00 → 100
11:00 → 10
12:00 → 60


Наивный вариант:


SUM(amount) OVER (
PARTITION BY user_id
ORDER BY ts
)


может дать неправильную логику, если считать операции с одинаковым ts по отдельности.

Задача: написать SQL-запрос, который сначала объединит операции одного пользователя с одинаковым timestamp, а затем проверит минимальный накопительный баланс.


Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов?

Обсудим на IT-analyst Meetup от Сбера! В программе — прикладные доклады:

— Как эффективнее использовать возможности мозга
— Какие навыки развивать аналитику и как выстроить план роста
— SDD на практике: подводные камни внедрения и новые зоны ответственности аналитика

📆 29 сентября
📍 Офис Сбера (Кутузовский пр-т, 32) и трансляция онлайн

Выбирайте удобный формат и регистрируйтесь по ссылке


🐧 Linux Cheat Sheet - шпаргалка по командам Linux

Самая удобная шпаргалка по Linux и Bash на русском: теория простым языком (как устроены файлы, процессы, права, память, загрузка и сеть), команды терминала, права доступа, процессы, сеть, SSH, systemd, grep/sed/awk, Vim и готовые однострочники - с примерами.

А для тех, кто идёт дальше, - продвинутый уровень: Bash для профи, LVM и RAID, трассировка и производительность, ядро, безопасность, контейнеры, восстановление системы и вопросы с собеседований.

https://github.com/justxor/Linux-/


⚡️ SQL-задача с подвохом

Что вернёт этот запрос в PostgreSQL?


CREATE TABLE payments (
id int,
amount int
);

INSERT INTO payments VALUES
(1, 100),
(2, 100),
(3, 200);

SELECT
id,
amount,
SUM(amount) OVER (ORDER BY amount) AS total
FROM payments
ORDER BY id;


Многие ожидают:


1 | 100 | 100
2 | 100 | 200
3 | 200 | 400


Но результат будет другим:


1 | 100 | 200
2 | 100 | 200
3 | 200 | 400


По умолчанию PostgreSQL использует окно RANGE ... CURRENT ROW. Строки с одинаковым amount считаются равными соседями и попадают в окно вместе.

Для построчного накопления нужно указать ROWS:


SUM(amount) OVER (
ORDER BY amount, id
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)


#SQL #PostgreSQL #Database


Video is unavailable for watching
Show in Telegram
🖥 Race condition в SQL: как продать последний товар дважды?

Race condition в SQL: Дио и Джотаро одновременно видят остаток в 1 штуку, оба оформляют заказ, и товар уходит дважды. Проблема в том, что проверка и списание идут разными запросами. Решение простое: UPDATE с условием stock > 0 в одном запросе, тогда заказ получает только тот, кто успел первым.


Какое расширение PostgreSQL позволяет собирать статистику выполнения всех SQL-запросов для выявления самых медленных из них?
Poll
  •   pg_stat_statements
  •   pg_stat_activity
  •   pg_monitor
  •   pg_query_audit
291 votes


🔥 Один из лучших обучающих курсов на StepiK по SQL

SQL можно знать годами и всё равно теряться, когда запрос внезапно начинает тормозить в проде.

Этот курс про уровень, где ты не просто пишешь SELECT, а понимаешь, что происходит внутри MySQL, почему запрос работает медленно и как ускорить его без новых проблем. Здесь разбираются EXPLAIN, индексы, CTE, оконные функции, транзакции, аналитические паттерны, legacy SQL и работа с AI-ассистентами.

Каждый урок - с практикой и реальными SQL-задачами на MySQL 8 с автопроверкой.

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

Для подписчиков скидка - 49% в течение 2 суток: https://stepik.org/a/298827/


Один товар, два покупателя. Как не продать больше, чем есть на складе?

Если сначала прочитать остаток через SELECT, а потом уменьшить его отдельным запросом, два покупателя могут одновременно увидеть последнюю единицу.

В PostgreSQL проверку и списание можно объединить:


UPDATE products
SET stock = stock - 1
WHERE id = 42
AND stock > 0
RETURNING id, stock;


Что получится при одновременных запросах:

• Первый покупатель уменьшит остаток с 1 до 0.
• Второй дождётся освобождения строки, и условие stock > 0 будет проверено повторно.
• Его запрос не обновит строку и ничего не вернёт — товар закончился.

Так работает обычный уровень изоляции PostgreSQL READ COMMITTED.

Добавьте защиту от отрицательных остатков:


ALTER TABLE products
ADD CONSTRAINT stock_nonnegative
CHECK (stock >= 0);


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


🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку

Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.

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

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

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

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

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

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


Forward from: Golang
🐘 pgbot - диагностика PostgreSQL для AI-агентов и приложений, написанная на Go

Один исполняемый файл подключается к базе в режиме чтения, собирает встроенную статистику PostgreSQL и показывает проблемы:

* замедление запросов и ожидание блокировок
* неиспользуемые индексы
* состояние vacuum и репликации
* загрузку соединений и взаимные блокировки
* изменения относительно предыдущих проверок

Диагностика рассчитывается кодом на Go. Опциональный AI-слой объясняет найденные проблемы и позволяет задавать вопросы обычным текстом.

Для агентов и автоматизации предусмотрены MCP и версионированный JSON-вывод. Есть плагин для Claude Code.

Базовые проверки работают без ключа LLM и внешнего сервиса. Проект находится в бете.

GitHub - https://github.com/pgrundev/pgbot

@Golang_google


Какая оконная функция в PostgreSQL используется для присвоения уникального порядкового номера каждой строке в рамках раздела?
Poll
  •   RANK()
  •   DENSE_RANK()
  •   ROW_NUMBER()
  •   LAG()
403 votes


10 лучших промптов для программиста в 2026 году: готовые шаблоны для работы с кодом

Хороший промпт для программирования помогает получить проверяемый результат: найти причину ошибки, внести нужное изменение, оценить риски и проверить поведение программы. Для этого модели нужны контекст проекта, ограничения и понятные критерии готовности.

Ниже – 10 готовых промптов для повседневной разработки: от исправления багов до ревью pull request и знакомства с чужим репозиторием.

Подставьте свои данные вместо текста в квадратных скобках.

https://uproger.com/10-luchshih-promptov-dlya-programmista-v-2026-godu-gotovye-shablony-dlya-raboty-s-kodom/


Python и ИИ в 2026 году: как правильно работать с кодом через ChatGPT, Claude, Cursor и AI-агентов

Как использовать ИИ для написания, проверки, рефакторинга и отладки Python-кода.

Лучшие промпты, примеры, workflow и правила работы с AI-ассистентами в 2026 году.

https://uproger.com/python-i-ii-v-2026-godu-kak-pravilno-rabotat-s-kodom-cherez-chatgpt-claude-cursor-i-ai-agentov/


GreptimeDB - open-source база для observability, которая пытается собрать metrics, logs и traces в одном backend.

Вместо отдельных систем для каждого типа телеметрии здесь используется общий табличный подход с тегами, timestamp и полями поверх колонночного движка и object storage.

Что умеет:

- объединять metrics, logs и traces и связывать их через SQL по service, host, trace ID и другим идентификаторам
- принимать данные через OpenTelemetry, Prometheus Remote Write, Loki Push, Elasticsearch Bulk, InfluxDB Line Protocol и gRPC
- поддерживать SQL, PromQL и Jaeger-совместимые запросы для traces
- хранить данные в S3, GCS, Azure Blob и S3-совместимых хранилищах
- настраивать retention, downsampling, continuous aggregation, partitioning и индексы

Может быть интересен тем, кто устал поддерживать несколько отдельных хранилищ для телеметрии и хочет свести observability-стек к одной системе.

Apache 2.0.

https://github.com/GreptimeTeam/greptimedb

20 last posts shown.