SQL Academy: всё о реляционных БД и SQL
11.9K subscribers
184 photos
1 video
2 files
30 links
По всем вопросам и коммерческим предложениям писать @LadanovNick

Купить рекламу: https://telega.in/c/sqlacademyofficial

Чат студентов SQL Academy
https://t.me/sqlacademyorg
Download Telegram
Какой из диалектов SQL для вас наиболее интересен ❓
Anonymous Poll
27%
MySQL
53%
PostgreSQL
6%
Microsoft SQL Server (T-SQL)
6%
Oracle Database (PL/SQL)
1%
SQLite
0%
IBM DB2
7%
Не знаю
Подводим итоги за июнь 🏖
Добрый день! Мы собрали для вас самое важное, что произошло за прошедший месяц. Нас ждет много интересного и полезного!

Расширение способов оплаты 💸
Теперь мы можем принимать платежи не только с банковских карт, выпущенных в России. Если у вас были проблемы с оплатой, теперь они остались в прошлом. Кроме того, сейчас премиум-доступ можно купить с хорошей скидкой, используя промокод ниже.

Новые задания по SQL
Мы добавили 3 новых задания по SQL, основанных на реальных собеседованиях на позицию Junior Data Analyst в Skypro. Проверьте свои навыки и подготовьтесь к интервью!

🔹 Выведите сумму выручки по каждому курсу за последний месяц…
🔹 Выведите название курса и среднюю оценку для каждого курса с количеством оценок…
🔹 Выведите количество пользователей, которые совершили покупку курса, но…

Популярные посты за июнь
🔹 Использование временных таблиц для сложных запросов в SQL
🔹 Краткая справка по основам SQL 🔥
🔹 Условные выражения в MySQL
🔹 В чем отличие WHERE от HAVING

Скидка в честь начала июля
В честь начала нового календарного месяца лета, прекрасного сезона для самообразования, мы объявляем скидку 30%! Активируйте промокод до 6 июля 23:59 и начните учиться с выгодой.

Промокод: JULY30
👍15❤5🔥3⚡1👎1🤩1😍1
Использование подзапросов в SQL 📊
Подзапросы, или вложенные запросы, — это мощный инструмент для выполнения сложных запросов в SQL. Они позволяют встроить один запрос в другой, делая возможным получение данных, которые зависят от результатов других запросов.

🔹Подзапрос в SELECT

SELECT employee_id, employee_name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

В этом примере подзапрос вычисляет среднюю зарплату, и основной запрос возвращает сотрудников с зарплатой выше среднего.

🔹 Подзапрос в FROM

SELECT department_id, COUNT(*)
FROM (SELECT department_id, employee_id FROM employees WHERE salary > 50000) high_earners
GROUP BY department_id;

Этот подзапрос выбирает сотрудников с зарплатой выше 50000, а затем основной запрос подсчитывает их количество по отделам.

🔹Подзапрос в WHERE

SELECT employee_id, employee_name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');

Здесь подзапрос выбирает отделы в Нью-Йорке, а основной запрос возвращает сотрудников этих отделов.

Подзапросы позволяют создавать динамичные и гибкие SQL-запросы, упрощая работу с комплексными данными. Попробуйте использовать их в своих проектах для повышения эффективности и точности ваших запросов! ⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36❤4🔥2🤩2⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
🌟 Больше интерактивных элементов на платформе! 🌟

Трудно понять, как работает сортировка в SQL, особенно когда дело касается сортировки по нескольким полям?

Мы подготовили для вас интерактивную демонстрацию работы сортировки 🎁! Теперь разобраться с этим станет гораздо проще и интереснее.

Переходите по ссылке и попробуйте сами:
https://sql-academy.org/guide/sorting
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41❤9👏5🤩3⚡2👍2😎1
Давайте попробуем вместе 🫂 решить 2 несложные задачи на позицию Middle business analyst в Accenture:

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

2 задачи - 2 победителя.

Для участия необходимо:
1) Перейти по ссылке sql песочницы, ссылки указаны ниже к каждой из задач
2) Сделать fork (копию этой песочницы)
3) В блоке Query SQL написать ваше решение
4) Не забыть сохранить песочницу перед отправкой
5) Оставить в комментариях под постом ссылку на вашу песочницу с решением и номер задачи, которую вы решали

Задача 1
Вывести список сотрудников, получающих заработную плату большую чем у непосредственного руководителя


Ссылка на подготовленную песочницу:
https://sqlplayground.app/sandbox/669fd9c7fab0d08abff8ded8

Задача 2
Вывести список сотрудников, получающих максимальную заработную плату в своем отделе


Ссылка на подготовленную песочницу:
https://sqlplayground.app/sandbox/669fdc57fab0d08abff8deef
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍4🔥1🤩1
Вам было бы интересно пройти тестовой собеседование по SQL от специалистов, работающих в топовых IT компаниях, и получить рекомендации после него?
Anonymous Poll
19%
Да, готов даже заплатить 3k
4%
Да, готов даже заплатить 5k
77%
Разве что за бесплатно
3🔥7🤯3👍2❤1
Мини-квиз по работе с датой и временем в SQL

Вопрос 1: Что делает следующий запрос?

SELECT DATE_FORMAT('2024-08-16', '%W, %M %d, %Y');


a) Возвращает дату в формате 16 августа 2024
b) Возвращает дату в формате 2024-08-16
c) Возвращает дату в формате Friday, August 16, 2024
d) Возвращает дату в формате 2024-16-08

Правильный ответ: c) Возвращает дату в формате Friday, August 16, 2024

Вопрос 2: Какой результат вернет следующий запрос, если текущая дата 2024-08-16?


SELECT DATEDIFF('2024-12-31', CURDATE());


a) 137
b) 100
c) 31
d) 365

Правильный ответ: a) 137

Вопрос 3: Какой результат вернет следующий запрос?

SELECT DATE_ADD('2024-02-28', INTERVAL 1 DAY);


a) 2024-02-29
b) 2024-03-01
c) 2024-03-02
d) Ошибка из-за неверной даты

Правильный ответ: b) 2024-03-01

Вопрос 4: Что произойдет, если выполнить следующий запрос?

SELECT TIMESTAMPDIFF(HOUR, '2024-08-16 08:00:00', '2024-08-16 20:00:00');


a) Вернет количество дней между двумя датами
b) Вернет количество секунд между двумя датами
c) Вернет количество часов между двумя датами
d) Вернет количество минут между двумя датами

Правильный ответ: c) Вернет количество часов между двумя датами
1🔥33👍25❤6🥰1🤩1
Кто же эти красивые люди🧐?

Это наши менторы, люди имеющие огромный опыт за спиной и готовые помочь вам с mock-собеседованиями.

Узнать больше информации о них и записаться можно тут:
https://sql-academy.org/ru/mentors
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13❤6🔥2🥰2👏1😁1
Попробуй решить ❓

Дана таблица:

| OrderID | CustomerID | OrderDate | Amount |
|---------|------------|------------|--------|
| 1 | 101 | 2024-01-01 | 100 |
| 2 | 102 | 2024-01-02 | 200 |
| 3 | 101 | 2024-01-05 | 150 |
| 4 | 103 | 2024-01-07 | 300 |
| 5 | 101 | 2024-01-17 | 50 |
| 6 | 104 | 2024-01-15 | 400 |
| 7 | 102 | 2024-01-20 | 100 |
| 8 | 103 | 2024-01-21 | 200 |


Какой результат вернет следующий запрос?

SELECT CustomerID, SUM(Amount) AS TotalAmount
FROM Orders
WHERE OrderDate BETWEEN '2024-01-01' AND '2024-01-15'
GROUP BY CustomerID
HAVING COUNT(*) > 1;


Варианты ответа:
1. CustomerID = 101, TotalAmount = 250
2. CustomerID = 101, TotalAmount = 300
3. CustomerID = 102, TotalAmount = 200
4. CustomerID = 103, TotalAmount = 500

Решение в комментариях 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍26❤8🔥4
С днем знаний 🎉🙂

Осень — идеальное время, чтобы начинать учиться! 📚

Чтобы учёба была ещё приятнее, мы дарим вам промокод 1SEPTEMBER на скидку 30%! 🤑 Успейте активировать до 5 сентября! ⏳

Также до 5 сентебря при покупке mock-собеседования
мы дарим вам премиум 🎁

Вперёд к новым знаниям! ✨
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12❤3😢2👎1🔥1😍1
🚀 Вопросы с собеседования на позицию intern аналитика в Тинькофф: разбор SQL 🚀

Сегодня мы разберем некоторые интересные вопросы по SQL, которые могут встретиться на собеседовании в Тинькофф. 📊🔍

1️⃣ Может ли измениться результат запроса, если в LEFT JOIN поменять местами таблицы ?

Да, если поменять местами таблицы в LEFT JOIN, результат запроса кардинально изменится. Все потому, что LEFT JOIN берет все строки из "левой" таблицы, дополняя их данными из "правой". Смена местами меняет логику: теперь "правая" становится "левой" и наоборот. Это влияет на то, какие строки и как будут включены в результат. 🔄

2️⃣ 5 + NULL это сколько?

В SQL, когда вы выполняете арифметическую операцию с NULL, результатом всегда будет NULL. Это связано с тем, что NULL представляет собой неопределенное значение, и любая операция с неопределенным значением также является неопределенной. Таким образом, 5 + NULL будет равно NULL.

3️⃣ Какие функции умеют возвращать значения из предыдущих/последующих строк для заданной строки таблицы ?

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

ℹ️LEAD(): Получает данные из строки после текущей, позволяя смотреть вперед на заданное количество строк.

ℹ️ LAG(): Доступ к данным из строки перед текущей, предоставляя возможность анализировать предыдущие значения.

ℹ️ FIRST_VALUE() и LAST_VALUE(): Возвращают первое и последнее значение в наборе строк соответственно, идеально для сравнения текущих значений с крайними в диапазоне.

ℹ️ NTH_VALUE(): Дает значение из конкретной позиции в окне, полезно для нахождения конкретных точек данных в последовательности.

Для тех, кто хочет углубиться в тему оконных функций:
https://sql-academy.org/ru/guide/windows-functions
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍45🔥5❤4🤩3⚡1
🚀 Вопросы с собеседования на позицию intern аналитика в Тинькофф: разбор SQL (часть 2) 🚀

Сегодня мы разберем некоторые интересные вопросы по SQL, которые могут встретиться на собеседовании в Тинькофф. 📊🔍

1️⃣ Можно ли делать JOIN таблицы саму на себя? 🤔

Абсолютно! Это называется self-join и полезно для работы с иерархическими данными или для сравнения строк в таблице. Вот пример запроса:


SELECT a.name AS EmployeeName, b.name AS ManagerName
FROM employees a
JOIN employees b ON a.manager_id = b.id;

Здесь мы используем одну и ту же таблицу employees для поиска имени сотрудника и его менеджера. Псевдонимы a и b помогают нам различать два использования таблицы.

2️⃣ Какой из операторов: SELECT, FROM, WHERE, GROUP BY - выполняется последним? 🧐

И тут главный герой - SELECT! 🌟 Хотя он стоит на первом месте по синтаксису, логически данные выбираются после всех фильтраций и группировок. Так что, порядок такой:

1. FROM ➡️ 2. WHERE ➡️ 3. GROUP BY ➡️ 4. SELECT.

3️⃣ Минимальное и максимальное количество записей в FULL JOIN таблицы на 10 и 100 строк? 📊

С FULL JOIN всё интересно:

🔹Минимум? 100 строк, если каждая из 10 нашла свою пару.

🔹Максимум? 1000 строк, если каждая строка из одной таблицы сопоставляется с каждой строкой из другой таблицы, то получаем кросс-продукт (декартово произведение) этих таблиц, что означает, что каждая строка из таблицы на 10 строк будет соединена с каждой строкой из таблицы на 100 строк.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤28👍20🔥6⚡1🥰1🤩1