Изучаем SQL с нуля По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning № 4974313625
На конференции Data&ML2Business команда Yandex B2B Tech анонсировала запуск платформы YTsaurus — промышленного решения для хранения и обработки больших данных, которое теперь доступно внешним компаниям.
Платформу разрабатывали внутри Яндекса с 2010 года. Сегодня YTsaurus обрабатывает данные для большинства внутренних сервисов: используется в работе с поисковым индексом, при обучении нейросетей (включая YandexGPT), а также в Яндекс Маркете и в сервисах автономного транспорта.
YTsaurus масштабируется до миллиона CPU и десятков тысяч GPU, поддерживает ClickHouse, Apache Spark и классическую MapReduce-парадигму. Подходит для построения корпоративных хранилищ, ETL-систем, а также для работы с логами, транзакциями и другими структурированными и неструктурированными данными.
Решение доступно в двух вариантах — как управляемый облачный сервис и в формате on-premise. Для участия в программе раннего доступа необходимо подать заявку на сайте.
#вопросы_с_собеседований
Равен ли NULL 0 в SQL?
Нулевое значение в SQL обозначает значение, которое недоступно или назначено. Пробел (‘ ‘) или ноль (0) не эквивалентны значению NULL. Вы не можете сравнить значение NULL с любым другим значением, используя операторы сравнения, такие как “=” или”>”, поскольку оно не может быть равно или неравно любому другому значению.
Сравнение JSONB с hstore
Оба типа данных поддерживают хранение пар "ключ-значение", но JSONB имеет более сложную структуру, позволяющую включать массивы и вложенные объекты.
Hstore хранит данные в виде одиночных пар, что может быть удобно для простых случаев, но менее мощно для сложных структур.
🖥 Как работает CASE SQL
Оператор CASE в SQL используется для создания условий, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.
Оператор CASE может быть использован в двух форматах:CASE без ELSE:
SELECT column1,
CASE
WHEN column2 = 'value1' THEN 'result1'
WHEN column2 = 'value2' THEN 'result2'
END AS column3
FROM table;
В этой форме оператора CASE
используется блок WHEN
для проверки значения столбца column2
. Если значение равно value1
, то будет возвращено значение result1
. Если значение равно value2
, то будет возвращено значение result2
. Если значение не соответствует ни одному из условий, то для столбца column3 будет возвращено значение NULL
.CASE с ELSE:
SELECT column1,
CASE column2
WHEN 'value1' THEN 'result1'
WHEN 'value2' THEN 'result2'
ELSE 'result3'
END AS column3
FROM table;
В этой форме оператора CASE
используется значение столбца column2
в блоке CASE
. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2
, то будет возвращено значение result2
. Если значение не соответствует ни одному из условий, то будет возвращено значение result3.
Оба формата оператора CASE
могут использоваться в запросах на выборку данных в SQL
. Они позволяют создавать условия, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи за вторник
Ответ на картинке.
Задача
При выборке из таблицы workers прибавьте к дате 4 дня, 3 часа, 2 минуты, 1 секунду.
Ответ на картинке.
Функция FIND_IN_SET()
Функция FIND_IN_SET() возвращает положение строки в списке строк.
Подробнее ознакомиться с функцией можно здесь.
#Вопросы_с_собеседования
Какие параметры используются в конструкции order by?
ASC и DESC
Генерация случайных чисел в MySQL
Для генерации случайных чисел или сортировки строк в случайном порядке можно использовать стандартную функцию NEWID().
#вопросы_с_собеседований
При выборке из таблицы workers получите первые 5 символов логина и добавьте троеточие
Ответ на картинке.
🗞 EasyOffer 2.0 собрал более 1 млн рублей за первые сутки краудфандинга
Платформа EasyOffer, предназначенная для подготовки к IT-собеседованиям, объявила о разработке новой версии сервиса. За первые 24 часа краудфандинга проекту удалось привлечь более 1 000 000 рублей.
В релизе EasyOffer 2.0 планируется:
— крупнейшая база реальных вопросов и задач с технических интервью
— тренажёры по интервальным повторениям и симуляторы собеседований
— аналитика по компаниям, грейдам, популярности и сложности вопросов
— тестовые задания и требования из вакансий
📆 Релиз запланирован на конец мая.
Сейчас в рамках сбора средств можно оформить годовой PRO-доступ за 3 200 ₽. После запуска такая сумма будет соответствовать цене месячной подписки.
Последние дни регистрации на IT_ONE Cup. ML Challenge.
Создай AI-ассистента, который будет помогать в работе дизайнерам, системным и бизнес-аналитикам. Победители разделят призовой фонд в 1 500 000 рублей. Все участники смогут выиграть крутой мерч и приглашение в магистратуру ИТМО.
Регистрация открыта до 13 апреля включительно
Почему это для тебя:
🔸 Достаточно создать Proof of concept сервиса, а не полноценный MVP.
🔸 Применишь свои знания в машинном обучении, обработке естественного языка и компьютерном зрении на практике.
🔸 Узнаешь самые действенные подходы к решению задач от экспертов.
🔸 Хватит базовых навыков в ML и желания экспериментировать – задачи не требуют обучения моделей с нуля.
На IT_ONE Cup. ML Challenge ты:
🔸 Поработаешь с современными технологиями: LLM, NLP, RAG, MCP.
🔸 Создашь AI-инструмент, который упростит работу других специалистов.
🔸 Сможешь попасть в магистратуру ИТМО на факультет Программной инженерии и компьютерной техники. Число приглашений не ограничено – шанс будет у каждого.
Треки соревнования:
1. Динамические контекстные подсказки для системного аналитика.
2. AI-генератор дизайн-макетов по описанию требований.
3. Система визуализации BPMN-диаграмм.
Регистрируйся до 13 апреля включительно: https://cnrlink.com/itonecupmlsqlbdlearning
Реклама. ООО "ГПБ-ИТ1". ИНН 9717102235. erid: 2W5zFGZ9L8Y
Отличия MySQL от PostgreSQL. Выбираем что лучше, PostgreSQL или MySQL
В данной статье мы сравним PostgreSQL и MySQL по различным параметрам и запишем их в сравнительную таблицу.
Перейти к статье
Ранжирующая функция NTILE()
Функция NTILE() является частью языка SQL и используется для разделения результата запроса на определенное количество групп или сегментов. Эта функция принимает один аргумент - количество сегментов на которые нужно разделить результат.
Как сэкономить свои нервы и деньги компании на перестроении структуры больших таблиц без простоя в PostgreSQL
Смотреть статью
#Вопросы_с_собеседования
Вы работаете с базой данных, где есть таблица Прод
ажи, включающая поля Дата_прод
ажи, Менеджер
_ID, Сумма_прод
ажи. Вам нужно выяснить, есть ли в базе данных дни, когда каждый менеджер совершал хотя бы одну продажу. Какой SQL-запрос вы бы использовали для решения этой задачи?
Ответ: Можно использовать следующий запрос:
SELECT Дата_продажи
FROM Продажи
GROUP BY Дата_продажи
HAVING COUNT(DISTINCT Менеджер_ID) = (SELECT COUNT(DISTINCT Менеджер_ID) FROM Продажи);
Дата_продажи
и использует условие HAVING
для фильтрации дней, в которые количество уникальных менеджеров, совершивших продажи, равно общему количеству уникальных менеджеров, работающих в компании. Если в компании работают менеджеры, которые не совершали продаж в какой-то из дней, эти дни отфильтровываются.
Читать полностью…
🕵♂Использование CROSS JOIN для задач поиска пересечений в исторических данных
🔵 CROSS JOIN (или полное соединение таблиц без условий) — декартова перемножение множеств. Говоря простым языком — для каждого варианта первого множества будет сопоставлены все варианты второго множества.
• Правильное использование этого типа соединения может помочь в решении сложных задач, например, нахождении пересечений в исторических данных.
• Структура таблиц представленных примеров в изображении 1.
📕 Допустим: клиент Сидоров Степан Павлович подал заявку на кредит. На некотором этапе рассмотрения потребовался анализ платежеспособности клиента андеррайтером.
Заявка автоматически распределилась на сотрудника Петрова Екатерина Павловна.
На первый взгляд ничего подозрительного нет — в ФИО людей совпадает только отчество, что является широко распространенной ситуацией.
❗️ Однако, при детальном анализе выясняется, что девичья фамилия андеррайтера и клиента совпадают (Сидорова / Сидоров) изображение 2.
В таком случае заявка клиента должна была распределиться на другого сотрудника, чтобы решение, вынесенное по заявке, было не предвзятым.
• Для решения данной задачи можно использовать простой запрос с CROSS JOIN изображение 3.
➡️ Продолжение
Многомерный анализ данных: исследование многомерных кубов и SQL OLAP-запросов
Читать статью
🖥 Как в sql посчитать количество повторяющихся значений
Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.
Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name
Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
#Вопросы_с_собеседования
Какие бывают типы подзапросов?
Существует два типа подзапросов, а именно: коррелированные и некоррелированные.
• Коррелированный подзапрос: это запрос, который выбирает данные из таблицы со ссылкой на внешний запрос. Он не считается независимым запросом, поскольку ссылается на другую таблицу или столбец в таблице.
• Некоррелированный подзапрос: этот запрос является независимым запросом, в котором выходные данные подзапроса подставляются в основной запрос.
#Вопросы_с_собеседования
Какие ещё ограничения вы знаете, как они работают и указываются?
SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.
• UNIQUE
— гарантирует уникальность значений в столбце;
• NOT NULL
— значение не может быть NULL;
• INDEX
— создаёт индексы в таблице для быстрого поиска/запросов;
• CHECK
— значения столбца должны соответствовать заданным условиям;
• DEFAULT
— предоставляет столбцу значения по умолчанию.
#Вопросы_с_собеседования
❓Как GROUP BY обрабатывает значение NULL?
Ответ:
При использовании GROUP BY все значения NULL считаются равными.
Столкнулись с падением производительности базы данных?
Не делайте резких движений: вы можете ухудшить ситуацию.
Сначала нужно верно диагностировать причину проблемы.
Возможно вы неправильно выбрали индексы, а быть может дело вообще в самой архитектуре БД – вариантов масса!
На открытом вебинаре «Как ускорить работу и повысить надёжность PostgreSQL»
вы узнаете:
🎯как обеспечить высокую производительность и отказоустойчивость базы данных
🎯как вовремя выявить деградацию производительности с помощью диагностики
Вебинар проведёт Дмитрий Золотов, Kotlin-разработчик в «Яндексе».
Приглашаем технических руководителей, админов БД, девопсов и разработчиков.
Все участники получат в подарок видеоурок «Безопасность в PostgreSQL: защита данных, управление доступом и аудит» и скидку 7% на любой курс OTUS.
6 мая, 19:00 МСК
Бесплатно
Записаться - https://otus.pw/llV1/
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFG4V2Nk
#вопросы_с_собеседований
Вывести 30 комментариев начиная с 5 комментария из таблицы replies, кроме комментариев автора 'Вася'. Данные сортируются по дате добавления комментария в убывающем порядке
Ответ на картинке.
Тратите много времени на повторяющиеся SQL-запросы, выполняя рутинные задачи вручную?
На бесплатном вебинаре, который пройдет 22 апреля в 20:00, мы решим эту проблему и научим вас создавать и использовать хранимые процедуры для автоматизации процессов в SQL! https://otus.pw/sYDb/
Представьте, что вы можете автоматизировать эти задачи с помощью хранимых процедур в MS SQL Server и PostgreSQL, увеличив свою эфффективность. Больше не придется тратить на это лишние силы.
Записывайтесь на урок, получайте практические навыки, а также скидку на большое обучение «SQL для разработчиков и аналитиков»: https://otus.pw/sYDb/
erid: 2W5zFGp9d2g
⚡️ Python теперь в Telegram!
Ребята сделали крутейший канал, где на простых картинках и понятном языке обучают Python, делятся полезными фишками и инструментами
Подписывайтесь: @PythonPortal
PostgreSQL 17: архитектура и тюнинг SQL-запросов
Погрузись в архитектуру и прокачай оптимизацию запросов одной из самых популярных open source СУБД – PostgreSQL.
🌐 В программе курса:
🤩 Разберем, как работают СУБД вообще и PostgreSQL в частности: что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие фундаментальные понятия архитектуры баз данных
🤩 Получите свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО на время обучения предоставляется
🤩 Получите теорию и практику EXPLAIN и EXPLAIN ANALYZE на разных типа запросов
🤩 Изучите архитектуру хранения данных в PostgreSQL, типы и особенности индексов, а также получите полезные советы и трюки оптимизации БД
🗓 Старт курса: 24 апреля. Продолжительность: 5 недель обучения (четверг, 18:00 МСК).
Изучить программу и записаться можно здесь.
🤩Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак.
Автор курса — Николай Ихалайнен, эксперт по СУБД (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzquiQ76e
Мои коллеги из Яндекса создали сильнейшие IT каналы 🔥
Наше кредо — программирование не сложно, просто никто не объяснял нормально.
JSON_VALUE в Microsoft SQL Server
JSON_VALUE - это функция в Microsoft SQL Server, которая извлекает значение из JSON-объекта по заданному пути.
Синтаксис функции JSON_VALUE выглядит следующим образом: JSON_VALUE (expression, path)
-expression - это JSON-объект, из которого нужно извлечь значение.
- path - это путь к значению внутри JSON-объекта.
Функция JSON_VALUE также может использоваться в фильтрах WHERE.