SQL Pro
Kanalga Telegram’da o‘tish
SQL Pro - всё об SQL Реклама: @anothertechrock Контент канала: 1. Разбор вопросов с собеседований 2. Трюки SQL 3. Видео 4. Тесты 5. Задачи на логику 6. Юмор
Ko'proq ko'rsatish4 923
Obunachilar
-124 soatlar
-37 kunlar
-3430 kunlar
Postlar arxiv
4 922
Трюк дня. Агрегирование записей в PostgreSQL. Решение
WITH projects (task_id, start_date, end_date)
AS (VALUES
(1, CAST('10-01-20' AS date), CAST('10-02-20' AS date)),
(2, CAST('10-02-20' AS date), CAST('10-03-20' AS date)),
(3, CAST('10-03-20' AS date), CAST('10-04-20' AS date)),
(4, CAST('10-13-20' AS date), CAST('10-14-20' AS date)),
(5, CAST('10-14-20' AS date), CAST('10-15-20' AS date)),
(6, CAST('10-28-20' AS date), CAST('10-29-20' AS date)),
(7, CAST('10-30-20' AS date), CAST('10-31-20' AS date))),
-- получим такие даты начала, которых не существует в колонке даты окончания (это 'настоящие' даты начала проекта)
t1 AS (
SELECT start_date
FROM projects
WHERE start_date NOT IN (SELECT end_date FROM projects) ),
-- получим такие даты окончания, которые не существуют в колонке дат начала (это 'настоящие' даты окончания проекта)
t2 AS (
SELECT end_date
FROM projects
WHERE end_date NOT IN (SELECT start_date FROM projects) ),
--отфильтруем допустимые пары начало-окончание (начало < окончание), затем найдем правильную дату окончания для каждой даты начала (минимальная дата окончания, поскольку нет пересекающихся проектов)
t3 AS (
SELECT
start_date,
MIN(end_date) AS end_date
FROM t1, t2
WHERE start_date < end_date
GROUP BY 1 )
SELECT
*,
end_date - start_date AS project_duration
FROM t3
ORDER BY 3, 1
#tips4 922
🔥Хотите научиться уверенно работать с базами данных?
⚡️Приглашаем 4 мая в 20:00 по мск на открытый урок «Физический уровень PostgreSQL» в OTUS.
Спикером выступит Евгений Аристов, специалист с 20-летним опытом в разработке и администрировании серверов.
На вебинаре мы:
🔸
Поговорим об устройстве PostgreSQL;
🔸 Рассмотрим процессы PostgreSQL и структуру памяти;
🔸 Обсудим, как PostgreSQL работает с данными на физическом уровне.
👉🏻Регистрация на вебинар!
Не упустите шанс попробовать обучение на продвинутом онлайн-курсе «Базы данных».4 922
Трюк дня. Агрегирование записей в PostgreSQL
Таблица
projects содержит три столбца: task_id, start_date и end_date.
Разница между датой окончания (end_date) и датой начала (start_date) составляет 1 день для каждой строки таблицы. Если даты окончания задач последовательны, они являются частью одного проекта. Даты проектов не пересекаются.
Напишите запрос, возвращающий даты начала и окончания каждого проекта, а также количество дней, затраченных на его выполнение. Расположите их в порядке возрастания продолжительности проекта, а в случае равенства - по возрастанию даты начала.
Код создания view исходной таблицы projects здесь.
Решение будет вечером.
#tips4 922
Ответ на #вопрос16
% — заменить ноль или более символов;
_ — заменить один символ.
Примеры:
SELECT * FROM user WHERE name LIKE '%test%';Данный запрос позволяет найти данные всех пользователей, имена которых содержат в себе «test».
SELECT * FROM user WHERE name LIKE 't_est';А в этом случае имена искомых пользователей начинаются на «t», после содержат какой-либо символ и «est» в конце. #вопросы #собеседование
4 922
Когда не знаете, что будет завтра — вкладывайте в себя. Поступите на онлайн-курс «Reverse-Engineering» от OTUS. Пройдите тест и узнайте, готовы ли вы к обучению.
👉🏻ПРОЙТИ ТЕСТ ПО РЕВЕРС-ИНЖИНИРИНГУ: https://otus.pw/sGCb/
— Хотите протестировать учебный процесс заранее? Регистрируйтесь на бесплатный интенсив от вирусного аналитика из всемирно известной ИБ-компании — СЕГОДНЯ, 18.04 в 20:00 мск — «Анализ буткита»!
4 922
❓Как работать с Patroni в Google Kubernetes Engine?
📌 Узнайте 21 апреля в OTUS на открытом уроке с Евгением Аристовым, архитектором баз данных PostgreSQL. Вместе с экспертом вы разберете архитектуру, принципы работы и особенности Patroni.
📘 За 1,5 часа мы рассмотрим следующие темы:
• Использование кластера Kubernetes в облаке гугла — Google Kubernetes Engine.
• Построение отказоустойчивого кластера Patroni в GKE, используя шаблонизатор helm.
• Архитектура и применение Postgres-operator для кластера Kubernetes от компании Zalando.
💻 Открытый урок пройдет в рамках онлайн-курса «PostgreSQL Cloud Solutions». Программа ориентирована на DevOps-инженеров, SRE, архитекторов данных, администраторов баз данных и разработчиков.
👉ЗАРЕГИСТРИРОВАТЬСЯ!
4 922
Ответ на #вопрос15
Важен.
Когда строится составной индекс, сначала индексируется первый столбец, а потом строятся индексы других столбцов, на основании главного (первого).
#вопросы #собеседование
4 922
🐧 Linux Junior - канал для Linux любителей.
Тем кому нравится командная строка и то, какое волшебство можно в ней делать.
rm -rf * man man touch -m old_file shutdown nowЭти и другие команды ты можешь выучить у нас в игровой форме. Подписывайся и отвечай на вопросы, решай задачки: @juniorlinux
4 922
Трюк дня. MySQL LIKE IN(). Решение
Используем функцию REGEXP:
SELECT * FROM user t
WHERE t.id REGEXP '114|23|868';
#tips4 922
Трюк дня. MySQL LIKE IN()
Напишите запрос, который выберет из таблицы
user все значения id, содержащие в себе 114, 23 и 868.
Запрос должен быть короче, чем следующий запрос:
SELECT * FROM user t
WHERE t.id LIKE '%114%'
OR t.id LIKE '%23%'
OR t.id LIKE '%868%';
Решение будет вечером.
#tips4 922
❓Хочешь освоить PostgreSQL?
📌 14 апреля в 20:00 в OTUS пройдет открытый урок «Резервное копирование и восстановление» с Евгением Аристовым, архитектором баз данных PostgreSQL, MongoDB, MSSQL, Oracle, MySQL, MariaDB, Couchbase и автором книг по PostgreSQL.
📘На занятии мы разберем:
• Стандартные методы логического и физического копирования
• Современную утилиту pg_probackup
• Лучшие практики по бэкапам и восстановлению
💻 Открытый урок пройдет в рамках онлайн-курса «PostgreSQL Cloud Solutions», рассчитанного на DevOps-инженеров, SRE, архитекторов данных, администраторов баз данных и разработчиков.
👉ЗАРЕГИСТРИРОВАТЬСЯ!
