sqlprofi | Unsorted

Telegram-канал sqlprofi - SQL Pro

5451

SQL Pro - всё об SQL Реклама: @anothertechrock Контент канала: 1. Разбор вопросов с собеседований 2. Трюки SQL 3. Видео 4. Тесты 5. Задачи на логику 6. Юмор

Subscribe to a channel

SQL Pro

Хотите освоить SQL и научиться решать реальные продуктовые задачи?

karpov.courses сделали бесплатный Симулятор, где SQL изучают с нуля до продвинутого уровня на практике. Сейчас на курсе более 120 задач: от базовых до оконных функций.

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

Вы разберётесь как:
• переводить запросы с языка бизнеса на язык аналитики
• формулировать и проверять гипотезы
• рассчитывать продуктовые метрики
• визуализировать результаты анализа
• строить интерактивные дашборды

Обучение проходит на платформе школы
[Начать учиться SQL]

Читать полностью…

SQL Pro

📌 Хотите освоить PostgreSQL не только с точки зрения теории, но и научиться применять этот инструмент в работе?

В OTUS начался набор на онлайн-курс «PostgreSQL для администраторов баз данных и разработчиков».

⚠️ Фишка программы в том, что вы получите знания с точки зрения практики, а не теории.

✅ РЕЗУЛЬТАТ ПРОХОЖДЕНИЯ КУРСА
Сильное портфолио, которое позволит работать в качестве PostgreSQL DBA — устанавливать, настраивать, поддерживать и развивать БД под управлением PostgreSQL

🔥 ОСТАВИТЬ ЗАЯВКУ, получите велкам-скидку
https://otus.pw/G3A8/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

SQL Pro

1 июня, 16:00
Вебинар: Как связать выделенный сервер и базы данных на примере PostgreSQL

Приглашаем на практический вебинар от @Selectel, в рамках которого ребята покажут, как перенести PostgreSQL с выделенного сервера в облако. Настроят облачную сеть между базами данных и выделенным сервером и расскажут, как работает продукт Database as a Service.

На вебинаре вы научитесь:

◽️ работать с облачными базами данных PostgreSQL,
◽️ улучшать производительность баз данных,
◽️ повышать безопасность приложений, чтобы они соответствовали требованиям 152-ФЗ.

За лучший вопрос можно получить фирменного маскота — Тирекса. Участие бесплатное, регистрируйтесь по ссылке: https://slc.tl/xou81

Реклама ООО «Селектел» Kra23ussG

Читать полностью…

SQL Pro

Задача на мышление и логику.

Определите, какое число пропущено в следующей последовательности чисел: 1, 2, 2, 4, 8, 11, …, 37, 148.

Решение будет вечером.

#логика

Читать полностью…

SQL Pro

#вопрос60

Как из таблицы выбрать все записи c четными ID? А с нечетными?

Решение будет вечером.

#вопросы #собеседование

Читать полностью…

SQL Pro

Задача на мышление и логику.

В игре, которая длится 15 минут, участвуют 36 игроков, из которых 4 — запасные. Запасные поочередно заменяют каждого игрока, так что все играющие проводят на площадке одинаковое время. Какое?

Решение будет вечером.

#логика

Читать полностью…

SQL Pro

Хотите научиться управлять базами данных?

Освоить язык SQL, научиться оптимизировать запросы, понимать возможности разных СУБД и правильно подбирать их под проект поможет онлайн-курс «Базы данных» от OTUS.

⚠️ Преподаватели-практики научат вас работать с самыми востребованными БД: PostgreSQL, MySQL, Redis, MongoDB, Cassandra и т. д.

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

Старт занятий 30 мая

.👉 ПРОЙДИТЕ ТЕСТ
https://otus.pw/sn0p/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

SQL Pro

Трюк дня. Как быстро заполнить таблицу 1 000 000 ТЕСТОВЫХ записей?

Создадим таблицу samples с точно такой же структурой, что и таблица tests. Заполним ее 10 тестовыми записями.

CREATE TABLE samples (
title varchar(256) NOT NULL
);

INSERT INTO
samples (title)
VALUES
('8iRDgsEIq4GmOs32FnHM3b3cH60n3mm8070'),
('UAmsXyrKgApfHMyV2kUrYqLphN99Q7TJSoe'),
('OX1qiFeTigcOTO5JVvgFk7MRDgjgatkTqwL'),
('CT9Kfbplp4QC87G32UIKlkGd31jdjt4qH4f'),
('WsAhjBL5tAgihYZBtX97FNUmEpXavhb4CRw'),
('LwaitJ5dieXyixEmjJXhhqDY8Zg9Tu5ecoV'),
('KpHsnqrcMCpkRxkGNMjEJV0jFaeucPtbLWe'),
('t2GSIDOvW14eMlroAWrRR6xU5DoeNUXY0lD'),
('rSvrEPxR8rcw7QYjXfeNdyf3LpqYNHu3W7a'),
('6liUHPkjnygSatoUB4juZ5TaJZjaxHpR4BL');

Для того, чтобы превратить 10 записей из таблицы samples в 1 000 000 записей произведем самообъединение таблицы samples шесть раз

SELECT
fst.title
FROM
samples AS fst,
samples AS snd,
samples AS thd,
samples AS fth,
samples AS fif,
samples AS sth;

Оператор JOIN, который в SQL может быть заменен обычной запятой, осуществляет декартово соединение таблиц, когда каждой записи одной таблицы сопоставляется каждая запись другой таблицы. Таким образом, если в одной таблице 10 записей и в другой таблице 10 записей, результирующая таблица, полученная их соединением через JOIN будет содержать 100 записей. Как нетрудно увидеть

10 x 10 x 10 x 10 x 10 x 10 = 1 000 000 записей

Если в таблице samples будет 100 записей, для получения 1 000 000 записей будет достаточно соединений трех таких таблиц, если в samples будет 1000 записей, будет достаточно объединить таблицу саму с собой один раз.

Вставить результат в целевую таблицу tests можно при помощи оператора INSERT ... SELECT ...

INSERT INTO
tests
SELECT
fst.title
FROM
samples AS fst,
samples AS snd,
samples AS thd,
samples AS fth,
samples AS fif,
samples AS sth;

#tips

Читать полностью…

SQL Pro

Решение сегодняшней задачи на логику и мышление.

5 центов. Если бы мяч стоил 10 центов, ракетка продавалась бы по цене 1 евро 10 центов, но столько стоят оба предмета вместе.

#логика

Читать полностью…

SQL Pro

📌 Базы данных используются везде: от небольших приложений до крупных корпоративных систем. Хотите начать уверенно с ними работать?

⚠️ Начните с вебинара «OLAP и OLTP: практическое сравнение». На открытом уроке 15 мая в 20:00 мск мы сравним эти разные технологии обработки данных в базах данных.

👨‍💻 На вебинаре вы узнаете:
- Какие основные различия существуют между OLAP и OLTP.
- Какие ключевые особенности присущи различным архитектурам и как правильно скомбинировать оба решения.

⬆️ Прямо на занятии, построим архитектуру тестового хранилища на практике.

Вебинар пройдет в рамках онлайн-курса «Базы данных» в OTUS. Больше навыков по работе с БД ждет вас на курсе, возможны разные способы его оплаты.

👉 Готовьте вопросы и записывайтесь на вебинар!
https://otus.pw/mY88/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

SQL Pro

#вопрос58

Чем отличается VARCHAR от NVARCHAR?

Решение будет вечером.

#вопросы #собеседование

Читать полностью…

SQL Pro

Решение сегодняшней задачи на логику и мышление.

Каждый номер страницы имеет цифру на месте единицы, так что есть N цифр, расположенных на месте единицы. А вот после 9 начинаются двухзначные числа, и нам нужно добавить N-9 цифр. То же самое с трехзначными, которые начинаются после 99: добавляем N-99 цифр. Продолжать нет смысла, так как сумма не предполагает более 999 страниц. Получаем следующую формулу:

N + (N-9) + (N-99) = 1095

Далее просто решаем:

3N - 108 = 1095

3N = 1203

N = 401

Итого 401 страница.

#логика

Читать полностью…

SQL Pro

Аналитик? Project? Маркетолог?

Подключайся к нашему сообществу Data Analyst REBRAIN.

С нас:
Бесплатные открытые практикумы каждый месяц.
Спикеры — профессиональные аналитики.
Разбор реальных кейсов анализа данных.
Самый актуальный технологический стек — Python, SQL, Tableau, бизнес-метрики и визуализацию данных, статистику, теорию вероятностей и др.

Каждый сможет найти для себя интересные практикумы по направлению и уровню компетенций.

И да, все это бесплатно!
Подключайтесь.

Читать полностью…

SQL Pro

#вопрос57

Напишите SQL-запрос, с применением UNION ALL (не UNION), использующий WHERE для устранения дубликатов.

Решение будет вечером.

#вопросы #собеседование

Читать полностью…

SQL Pro

VK Databases Meetup — мероприятие про тренды, технологии и лучшие практики в мире баз данных
⏰Когда: 18 мая, 15:00 по Москве
📍Где: офис VK и онлайн-трансляция
⚡️ Регистрация

Центральным событием митапа станет дискуссия «В поисках новых героев: что происходит с СУБД в России?». Эксперты из Tarantool, Arenadata, Jatoba, Yenisey и VK Cloud обсудят тенденции развития баз данных и поговорят о том, как сфера СУБД будет меняться в обозримом будущем:

• какие локальные и глобальные факторы влияют на функциональность СУБД;
• как меняются запросы пользователей;
• какие сложности сегодня есть в планировании архитектуры и миграции;
• зачем разработчикам новые СУБД.

Также в программе архитектурный и технологический треки.
В рамках архитектурного трека вместе с экспертами X5 Доставка и VK обсудим трудности, с которыми сталкиваются команды при разработке высоконагруженных систем.

На технологическом треке представитель Arenadata расскажет о процессе миграции СУБД на примере Oracle, «Инфосистемы Джет» рассмотрят популярные уязвимости Open-Source-баз данных, а VK Cloud поговорят о подходах к построению резервного копирования баз данных.

👉 Зарегистрироваться

Читать полностью…

SQL Pro

Трюк дня. Как выбрать строки из таблицы #1, id которых отсутствуют в таблице #2 с условием?

SELECT "user"."vkId"
FROM "user" as "user"
LEFT JOIN "notification"
ON "notification"."userId"="user"."vkId"
AND "notification"."type" = 991
WHERE "notification"."userId" IS NULL
GROUP BY "user"."vkId"
LIMIT 100

Так же можно использовать NOT EXISTS (в некоторых случаях он может быть быстрее, хотя в других - медленнее чем LEFT JOIN):

SELECT "user"."vkId"
FROM "user" as "user"
WHERE NOT EXISTS(
SELECT 1 FROM "notification"
WHERE "notification"."userId"="user"."vkId"
AND "notification"."type" = 991
)
GROUP BY "user"."vkId"
LIMIT 100

#tips

Читать полностью…

SQL Pro

Трюк дня. Как выбрать строки из таблицы #1, id которых отсутствуют в таблице #2 с условием?

Таблица 1: "notification":

userId | type
-------------
1 | 1
2 | 2
3 | 991
4 | 991

Таблица 2 "user":

vkId | something
-------------
1 | 1111
2 | 2222
3 | 3333
4 | 4444

Как выбрать пользователей из 2-ой таблицы, но только тех, которых нет в таблице №1 с type = 991?

Решение будет вечером.

#tips

Читать полностью…

SQL Pro

Решение сегодняшней задачи на логику и мышление.

Число 33. Решение: к первому числу прибавляем 1, второе число умножаем на 1, к третьему прибавляем 2, следующее умножаем на 2, затем прибавляем 3, следующее умножаем на 3 и т. д.

#логика

Читать полностью…

SQL Pro

Ответ на #вопрос60

Это один из распространенных вопросов по SQL на собеседованиях.

Выбор четных записей:

Select * from table where id % 2 = 0

Выбор нечетных записей:

Select * from table where id % 2 != 0

#вопросы #собеседование

Читать полностью…

SQL Pro

Решение сегодняшней задачи на логику и мышление.

~13,33 минуты: (15 × 32) / 36 = 13,33333…

#логика

Читать полностью…

SQL Pro

Ответ на #вопрос59

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

Во многих системах SQL план выполнения можно получить с помощью ключевого слова EXPLAIN. В Microsoft SQL Server Query Analyzer имеет в раскрывающемся меню параметр “Show Execution Plan”. Если его активировать, то при выполнении запроса план будет отображаться в отдельном окне.

#вопросы #собеседование

Читать полностью…

SQL Pro

#вопрос59

Что такое план запросов? Когда бы вы его использовали? Как посмотреть план?

Решение будет вечером.

#вопросы #собеседование

Читать полностью…

SQL Pro

Трюк дня. Как быстро заполнить таблицу 1 000 000 ТЕСТОВЫХ записей?

Пусть имеется таблица tests с единственным столбцом title

CREATE TABLE tests (
title varchar(256) NOT NULL
);

Как можно заполнить ее 1 000 000 тестовых записей?

Решение будет вечером.

#tips

Читать полностью…

SQL Pro

Задача на мышление и логику.

Теннисные ракетка и мяч вместе стоят 1 евро и 10 центов. Теннисная ракетка на 1 евро дороже мяча. Сколько стоит мяч?

Решение будет вечером.

#логика

Читать полностью…

SQL Pro

Ответ на #вопрос58

NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.

VARCHAR хранит значения в формате ASCII – каждый символ занимает байт, а кодировка занимает 256 символов.

#вопросы #собеседование

Читать полностью…

SQL Pro

📌 PostgreSQL — открытая реляционная база данных с высокой производительностью, надежностью и поддержкой стандартов SQL, которая все больше используется в различных проектах.

✅ Для стабильной и безотказной работы приложения крайне важен мониторинг базы данных.

⚠️ 16 мая в 20:00 мск состоится вебинар «Мониторинг PostgreSQL grafana+prometheus»https://otus.pw/Mlt7/

⬆️На вебинаре мы рассмотрим и настроим мониторинг PostgreSQL с помощью Grafana и Prometheus.

Этот вебинар приурочен к старту курса «PostgreSQL для администраторов баз данных и разработчиков», после урока вы сможете продолжить обучение. OTUS предоставляет разные способы оплаты курса. 

👉 Готовьте вопросы и записывайтесь на вебинар!
https://otus.pw/Mlt7/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

SQL Pro

Задача на мышление и логику.

Книга содержит N страниц, которые пронумерованы стандартно: от 1 до N. Если сложить количество цифр (не сами числа), что содержатся в каждом номере страницы, выйдет 1095. Так сколько в книге страниц?

Решение будет вечером.

#логика

Читать полностью…

SQL Pro

Ответ на #вопрос57

SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHERE b=Y AND a!=X

Ключевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.

#вопросы #собеседование

Читать полностью…

SQL Pro

Трюк дня. Что такое миграции и как создать миграции бд postgresql?

Миграции - инструмент для перевода базы из одного состояния в другое. Своего рода git для бд.

Обычно когда просят написать миграцию, то имеют ввиду SQL-файл, выполнение которого переведёт схему базы в новое состояние. То есть файл с инструкциями типа create table, alter table и тд. Часто необходим и второй файл - файл отката, который вернёт всё к исходному состоянию.

Так как последовательность применения таких файлов очень важана (например, в первой миграции создали таблицу, а во второй модифицируем её), то имена файлов содержат возрастающий идентификатор миграции. Часто этот идентификатор - просто дата и время миграции:

migrations/
- 20220728102400_create-foo-table_up.sql
- 20220728102400_create-foo-table_down.sql

Инструмент миграции применяет SQL-файл и помечает (обычно в той же базе данных, в своей служебной табличке), что миграция с этим идентификатором уже применена. При повторном запуске применённые миграции будут пропущены. Соответственно применённую миграцию можно откатить, найдя down-файл с нужным идентификатором.

#tips

Читать полностью…

SQL Pro

Трюк дня. Что такое миграции и как создать миграции бд postgresql?

Решение будет вечером.

#tips

Читать полностью…
Subscribe to a channel