Как стать автором
Обновить
65.83

SQL *

Формальный непроцедурный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

SQL и python для анализа цен на новостройки в СПб или ценнейший навык для маркетолога в 2024

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров12K

«Зачем мне SQL и python?» — задают резонный вопрос маркетологи или менеджеры по продукту, особенно в сфере недвижимости, оптовой торговли, услуг для бизнеса: «У нас нет миллионов строк данных, нет логов, мы успешно работаем с несколькими таблицами в excel».

Да действительно, у вас может не быть корпоративного хранилища данных в компании, и основой автоматизации работы с данными является Power query (что сейчас в РФ делать все труднее и труднее). Но у вас точно есть данные, которые вы получаете от смежных отделов, из CRM/CDP, MES, АСУ ТП. Эти данные приходят регулярно в виде файлов, и вы сопоставляете эти данные друг с другом с помощью ВПР, фильтруете воронкой, чистите с помощью «Найти или заменить», делайте сводники с помощью функции Pivot table.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии16

PostgreSQL: обеспечение уникальности записи с проверкой даты валидности

Время на прочтение2 мин
Количество просмотров3.6K

Как бы вы решали такую задачу? Предположим, есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Вам надо обеспечить такое ограничение (constraint) на уровне БД, чтобы у одного человека мог быть только один действующий купон.


Т.е., таблица изначально выглядит так:


CREATE TABLE coupons (
    id  bigint primary key generated by default as identity,
    user_id bigint not null,
    created_at timestamp not null,
    valid_until timestamp not null
)
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии18

PostgreSQL: обеспечение уникальности записи с проверкой даты валидности

Время на прочтение2 мин
Количество просмотров3.6K

Как бы вы решали такую задачу? Предположим, есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Вам надо обеспечить такое ограничение (constraint) на уровне БД, чтобы у одного человека мог быть только один действующий купон.


Т.е., таблица изначально выглядит так:


CREATE TABLE coupons (
    id  bigint primary key generated by default as identity,
    user_id bigint not null,
    created_at timestamp not null,
    valid_until timestamp not null
)
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии18

Решение проблемы N+1 при работе с Kotlin Exposed

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.6K

К написанию этой статьи я подошёл после продолжительного использования Kotlin Exposed в рабочих, а также персональных проектах, когда я начал анализировать генерируемые SQL запросы. В тот момент я познакомился с проблемой N+1)

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

Интерактивная диаграмма Ганта для тысяч работ

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров15K

Всем привет! Я расскажу, с помощью каких алгоритмов и архитектуры можно разработать с нуля интерактивную диаграмму Ганта, способную без лагов отображать тысячи задач.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Стартуем без транзакции. Альтернативный вариант вопросов на собеседовании «по SQL»

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров12K

Статей о селектах хватает, попробуем про апдейты. "ТОП-100" вопросов не обещаю - тут бы с одним разобраться. Разработчиков OLTP-систем под MS SQL Server и кандидатов на подобные вакансии приглашаю под кат.

Код на T-SQL, и он идеален. Атомарности нет, целостность вернём ручными апдейтами, изоляция с дюрабилити только мешают. Программируем без оглядки на ACID, который жив лишь в статье википедии.

ACID поломать, код не исправить
Всего голосов 20: ↑20 и ↓0+20
Комментарии10

Материалы для подготовки к собеседованию на позицию Data Scientist. Часть 1: Live Coding

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров15K

Привет! Меня зовут Артем. Я работаю Data Scientist'ом в компании МегаФон (платформа для безопасной монетизации данных OneFactor).

В данной статье разберемся что такое live coding интервью и как к нему готовиться.

Материал в первую очередь будет полезен Data Scientist'ам и ML инженерам, при этом некоторые разделы, например, Алгоритмы и структуры данных подойдут всем IT специалистам, которым предстоит пройти секцию live coding.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии11

Бэкап, бэкап и еще раз бэкап

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K

Речь сегодня пойдет об отказоустойчивости и даже о катастрофоустойчивости.

Почему вроде бы правильно настроенное архивирование базы данных не всегда помогает спасти систему в случае инцидентов? Этим вопросом я, наверное, многих даже задел за живое. Одних тем, что сама постановка вопроса им кажется абсурдной – у этой группы админов все настроено идеально, работает как часы и они готовы к любым катаклизмам. А кого-то тем, что напоминаю о тех самых инцидентах, когда возвращаться в тот день, даже мысленно, совсем не хочется.

В рамках проектов аудита производительности мы обязательно проверяем систему заказчика на предмет используемых средств отказоустойчивости и катастрофоустойчивости. И если есть основания, обязательно предоставляем рекомендации по улучшениям. Соответствующий раздел в своё время стал обязательным в каждом отчёте аудита не на пустом месте. За долгие годы мы встречались с таким количеством ситуаций, что можно начинать писать книгу :) Сама по себе ситуация краха системы редкая, поэтому вопросы отказоустойчивости далеко не везде в приоритете, а с учетом распространения в последние годы разнообразных ЦОД’ов, появляется большой соблазн снять с себя ответственность за целостность базы данных и непрерывного доступа к ней. Так что, с появлением ЦОД’ов люди совсем расслабились. А зря.

 Опишу несколько характерных примеров из нашей практики, с которыми мы столкнулись, причем в роли спасателей клиентской инфраструктуры и данных. Иногда на кону стояло само существование БД, иногда – интервал потерянных данных, иногда – время простоя бизнеса.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии15

SQL в Фокусе: Полное Руководство. 100 ключевых Вопросов с собеседований

Уровень сложностиСредний
Время на прочтение65 мин
Количество просмотров34K


В этой статье мы разберем самые простые и продвинутые аспекты языка SQL через 100 ключевых вопросов, которые встречаются на собеседованиях. Независимо от того, являетесь ли вы начинающим или опытным разработчиком баз данных, здесь вы найдете интересные и полезные аспекты для себя.

Давайте погружаться в мир SQL и раскрывать его тайны через популярные вопросы и ответы с собеседований. Готовы начать?

Читать
Всего голосов 34: ↑23 и ↓11+12
Комментарии27

Эволюция системы разработки на SQL

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.2K

Мы — SQL команда Срочного рынка Московской Биржи, занимаемся разработкой и сопровождением бэкофиса торгово-клиринговой системы Spectra с момента ее возникновения. Срочный рынок Московской Биржи — это более 500 фьючерсных и 30000 опционных инструментов, несколько миллионов сделок в день.

Торгово-клиринговая система Срочного рынка (ТКС Spectra) изначально строилась на основе MS SQL, и за пару десятков лет прошла сложный путь от нескольких серверов БД до огромной системы с сервис-ориентированной архитектурой. Долгое время вся бизнес-логика системы разрабатывалась в программном слое на серверах MS SQL: и матчинг заявок, и расчет обеспечения, и управление клиентами были реализованы на T-SQL.

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

В этой статье мы хотим рассказать об эволюции нашей системы разработки на SQL.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии7

Очистка данных перед загрузкой в хранилище. Подробное руководство с техническими деталями

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.9K

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

Читать далее
Всего голосов 9: ↑0 и ↓9-9
Комментарии6

Разговариваем с BI на естественном языке

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.8K

Всем привет! Искусственный интеллект уже научился писать простые запросы к базам данных, но можно ли совсем избавиться от кода в работе аналитиков? Мы расскажем про наши нейросетевые эксперименты, в которых мы научили BI-систему слушать, понимать и отрабатывать запросы аналитиков на естественном языке.

В команде R&D SberData мы ищем и разрабатываем технологии обработки, хранения и анализа данных Сбера. Мы исследуем все перспективные технологии, которые появляются на рынке, разрабатываем новые продукты, которые использует Сбер и его партнёры. Одно из приоритетных направлений для нас — это анализ данных. В Сбере более 100 тысяч пользователей BI (Business Intelligence). Естественно, что у такого количества аналитиков самые разные потребности и требования к сервису и продукту. И возможность сделать их работу проще и удобнее — это большой вызов и интересная задача для нашей команды. В этот раз мы пробовали научить LLM-модель написать правильный SQL-код по запросу на естественном языке.

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии14

MERGE и её улучшение производительности с помощью work_mem

Время на прочтение5 мин
Количество просмотров4.5K

С выходом PostgreSQL 15 мы застали появление долгожданной команды MERGE, которая позволяет реализовывать эффективные способы синхронизации обновлений.

Суть MERGE заключается в ее универсальности: она позволяет объединить операции INSERT, UPDATE и DELETE в одном запросе, автоматически выбирая нужное действие в зависимости от того, существует ли соответствующая запись в целевой таблице.

Вместо нескольких отдельных запросов INSERT, UPDATE, DELETE MERGE сокращает накладные расходы на сетевой трафик и уменьшает количество обращений к диску. MERGE облегчает реализацию шаблонов SCD и других сложных сценариев управления данными.

MERGE в PostgreSQL работает с соблюдением строгих стандартов SQL, обеспечивая совместимость и переносимость кода. Также PostgreSQL обрабатывает конфликты на уровне строк, позволяя тонко настраивать логику обработки данных с использованием условий WHEN MATCHED и WHEN NOT MATCHED.

Сравнивая с предшествующим подходом INSERT ON CONFLICT, MERGE предлагает больше возможностей для оптимизации и управления данными. INSERT ON CONFLICT был ориентирован преимущественно на обработку конфликтов при вставке, в то время как MERGE расширяет этот функционал.

Читать далее
Всего голосов 22: ↑20 и ↓2+18
Комментарии10

Ближайшие события

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Уровень сложностиСредний
Время на прочтение54 мин
Количество просмотров77K

Привет, Хабр)

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Всего голосов 125: ↑122 и ↓3+119
Комментарии7

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Уровень сложностиСредний
Время на прочтение54 мин
Количество просмотров77K

Привет, Хабр)

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Всего голосов 125: ↑122 и ↓3+119
Комментарии7

Бесплатные курсы для изучения SQL в 2024 году

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров27K

Изучение SQL в 2024 году остается важным для по нескольким причинам:

1. Широкое применение: SQL является стандартным языком для работы с реляционными базами данных, которые широко используются в различных отраслях. Большинство предприятий и организаций все еще хранят свои данные в реляционных базах данных, и знание SQL позволяет эффективно извлекать, обрабатывать и анализировать эти данные.

2. Базовый навык: SQL является одним из основных навыков, которые должен иметь специалист программист. Он позволяет выполнять запросы к базам данных, фильтровать данные, объединять таблицы, создавать новые таблицы и многое другое. Эти навыки необходимы для работы с данными и выполнения различных аналитических задач.

3. Интеграция с другими инструментами: SQL интегрируется с другими инструментами и языками программирования, такими как Python или R. Знание SQL позволяет легко передавать данные между различными инструментами и выполнять сложные аналитические задачи, комбинируя возможности различных инструментов.

Читать
Всего голосов 18: ↑13 и ↓5+8
Комментарии2

Вопросы по SQL, которые часто задают на собеседовании. Часть 2

Время на прочтение16 мин
Количество просмотров11K

Это вторая часть серии вопросов для подготовки к интервью по SQL. В ней мы обсудим еще 15 наиболее часто встречающихся вопросов, которые вам могут задать на собеседовании.

Часть 1 серии вопросов для интервью по SQL

Читать далее
Всего голосов 15: ↑9 и ↓6+3
Комментарии9

О применении Liquibase в проектах разработки

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.8K

О применении Liquibase в проектах разработки

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

Читать далее
Всего голосов 14: ↑7 и ↓70
Комментарии1

Outlook как сервер микросервисов

Время на прочтение8 мин
Количество просмотров3K

Доброго времени суток. 

Ты ж у нас один программист !!!
Небольшая вводная. Я для друзей, по их запросам, выгружаю данные из MS SQL Server'а. Друзья дают исходные данные, для которых надо сделать выгрузку в файлах .csv. Исходных данных (ИД) может быть от 1 до ... строк. Я загружал данные в sql таблицу с помощью задачи или Task в английской версии в SQL Server Management Studio (SSMS). Исторически сложилось, что все sql файлы со скриптами хранятся на моем ПК. Я файлы открывал в SSMS и запускал на выполнение. Результаты записывал в файл и отправлял сообщение, что обработка выполнена. Друзья забирали файлы с результатами. 

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

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии6

Вопросы по SQL, которые часто задают на собеседовании. Часть 1

Время на прочтение14 мин
Количество просмотров47K

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

Читать далее
Всего голосов 31: ↑26 и ↓5+21
Комментарии24

Вклад авторов