Как в SQL выбрать все записи из таблицы "Persons", где значение столбца "FirstName" равно "Peter", а значение столбца "LastName" равно "Jackson"?
Anonymous Quiz
4%
SELECT * FROM Persons WHERE FirstName<>'Peter' AND LastName<>'Jackson'
4%
SELECT FirstName='Peter', LastName='Jackson' FROM Persons
84%
SELECT * FROM Persons WHERE FirstName='Peter' AND LastName='Jackson'
5%
SELECT <ALL> FROM Persons WHERE FirstName='Peter' AND LastName='Jackson'
3%
SELECT * FROM Persons WHILE FirstName='Peter' AND LastName='Jackson'
0%
Посмотреть ответ
К какому результату приведет выполнение запроса DROP DATABASE Users?
Anonymous Quiz
75%
Полное удаление базы данных «Users»
3%
Блокировка на внесение изменений в базу данных «Users»
22%
Удаление таблицы «Users» из текущей базы данных
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой тип JOIN следует использовать между таблицами customer и order_table, чтобы отобразить всех клиентов, включая тех, кто не делал
заказов?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ⤵️
LEFT JOIN
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой тип JOIN следует использовать между таблицами customer и order_table, чтобы отобразить всех клиентов, включая тех, кто не делал
заказов?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой верный ответ на задачку выше? 👆
Anonymous Quiz
18%
INNER JOIN
61%
LEFT JOIN
10%
RIGHT JOIN
11%
CROSS JOIN
🚗 Как найти кратчайший маршрут с помощью Apache Spark и GraphFrames
Разбираем кейс на реальных данных из OpenStreetMap — ищем оптимальный маршрут
🔍 Что делаем
1. Загружаем граф дорог города с помощью OSMnx
2. Сохраняем вершины и ребра с координатами, скоростями и геометрией
3. Загружаем всё в Spark
4. Находим кратчайший путь с помощью GraphFrames
📍 1. Скачиваем карту и строим граф улиц
📁 2. Сохраняем геометрическое описание города в формате GeoJSON и данные о вершинах и рёбрах в формате CSV
3. Используем библиотеку GraphFrames для обработки графов на Apache Spark
🧭 4. Ищем кратчайший путь по времени
например, от Измайлово до ЖК Зиларт
💡 Результат: 40 шагов от точки A до точки B.
Такой подход легко масштабируется на миллионы маршрутов. Используйте Spark и GraphFrames для построения логистических моделей, маршрутизации и городского планирования.
🚀 Хотите прокачаться в работе с Big Data? Изучайте Spark! Записывайтесь на курс Spark Developer от OTUS — учитесь на реальных данных и продвинутых кейсах: https://vk.cc/cMT1Hp
Разбираем кейс на реальных данных из OpenStreetMap — ищем оптимальный маршрут
🔍 Что делаем
1. Загружаем граф дорог города с помощью OSMnx
2. Сохраняем вершины и ребра с координатами, скоростями и геометрией
3. Загружаем всё в Spark
4. Находим кратчайший путь с помощью GraphFrames
📍 1. Скачиваем карту и строим граф улиц
import osmnx as ox
# Загрузка данных о дорогах Москвы
G = ox.graph.graph_from_place("Moscow", network_type="drive")
# Отображение дорог на карте
moscow_gdf = ox.geocoder.geocode_to_gdf("Moscow")
fig, ax = ox.plot.plot_graph(G, show=False, close=False, bgcolor="#111111", edge_color="#ffcb00", edge_linewidth=0.3, node_size=0)
moscow_gdf.plot(ax=ax, fc="#444444", ec=None, lw=1, alpha=1, zorder=-1)
# Настройка границ карты
margin = 0.02
west, south, east, north = moscow_gdf.union_all().bounds
margin_ns = (north - south) * margin
margin_ew = (east - west) * margin
ax.set_ylim((south - margin_ns, north + margin_ns))
ax.set_xlim((west - margin_ew, east + margin_ew))
plt.show()
📁 2. Сохраняем геометрическое описание города в формате GeoJSON и данные о вершинах и рёбрах в формате CSV
with open('Moscow.geojson', 'w') as file:
file.write(moscow_gdf.to_json())
nodes = G.nodes(data=True)
with open('nodes.csv', 'a') as file:
file.write("id,lat,lonn")
for (node, data) in nodes:
file.write("%d,%f,%fn" % (node, data.get("y"), data.get("x")))
edges = G.edges(data=True)
def decode_maxspeed(maxspeed):
match maxspeed:
case str():
match maxspeed.lower():
case "ru:urban": return 60
case "ru:rural": return 90
case "ru:living_street": return 20
case "ru:motorway": return 110
case _: return int(maxspeed)
case list(): return min(list(map(decode_maxspeed, maxspeed)))
case _: return maxspeed
with open('edges.csv', 'a') as file:
file.write("src,dst,maxspeed,length,geometryn")
for (src, dst, data) in edges:
maxspeed = decode_maxspeed(data.get("maxspeed", 999))
length = float(data.get("length"))
geometry = shapely.wkt.dumps(data.get("geometry"))
file.write("%d,%d,%d,%f,%sn" % (src, dst, maxspeed, length, geometry))
3. Используем библиотеку GraphFrames для обработки графов на Apache Spark
from pyspark.sql import SparkSession
spark = SparkSession.builder
.config("spark.jars.packages", "graphframes:graphframes:0.8.4-spark3.5-s_2.12")
.master("local[*]")
.appName("GraphFrames")
.getOrCreate()
nodes = spark.read.options(header=True).csv("nodes.csv")
edges = spark.read.options(header=True).csv("edges.csv")
# Вычисление времени прохождения рёбер
edgesT = edges.withColumn("time", edges["length"] / edges["maxspeed"])
# Построение графа
from graphframes import *
g = GraphFrame(nodes, edgesT)
🧭 4. Ищем кратчайший путь по времени
например, от Измайлово до ЖК Зиларт
src = "257601812"
dst = "5840593081"
paths = g.shortestPaths(landmarks=[dst])
paths.filter(F.col("id") == src).show(truncate=False)
💡 Результат: 40 шагов от точки A до точки B.
Такой подход легко масштабируется на миллионы маршрутов. Используйте Spark и GraphFrames для построения логистических моделей, маршрутизации и городского планирования.
🚀 Хотите прокачаться в работе с Big Data? Изучайте Spark! Записывайтесь на курс Spark Developer от OTUS — учитесь на реальных данных и продвинутых кейсах: https://vk.cc/cMT1Hp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Что вернёт запрос?
Схема БД и код для генерации данных находятся в шапке канала.
Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
SELECT
CONCAT(LEFT(first_name, 1), '.', LEFT(last_name, 1), '.') AS abbreviation
FROM customer;
Схема БД и код для генерации данных находятся в шапке канала.
Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Telegram
SQL задачи
Друзья, мы тут сделали тестовую базу данных и добавили данные в неё. Следующие задачки и тесты будут на основе этой БД.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
Если знаете куда можно запихнуть SQL код, вместо telegra - напишите в комментах.…
Код генерации базы данных и INSERT данных по ссылке ТУТ.
Если знаете куда можно запихнуть SQL код, вместо telegra - напишите в комментах.…
🚨 Не пропустите 19 июня в 20:00 бесплатный вебинар “SQL: Расширяем понимание индексов в PostgreSQL и MS SQL Server” от курса “SQL для аналитиков и разработчиков”.
На вебинаре обсудим:
✅ Какие ещё типы индексов существуют помимо классического B-Tree.
✅ Как разные СУБД реализуют поддержку дополнительных индексов.
✅ Где могут быть полезны GIN, GiST, BRIN, Columnstore и другие варианты.
✅ Как подходить к выбору типа индекса под конкретную задачу.
В результате вебинара вы сможете:
— Лучше ориентироваться в возможностях индексирования в PostgreSQL и MS SQL Server.
— Понимать, какой тип индекса подходит для разных типов данных и запросов.
— Использовать дополнительные индексы там, где это действительно имеет смысл.
— Повысить эффективность работы с БД за счёт грамотного выбора индексации.
⏰ Оставляйте заявку на бесплатный урок и получите запись прошлого вебинара: https://vk.cc/cMV3O6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На вебинаре обсудим:
✅ Какие ещё типы индексов существуют помимо классического B-Tree.
✅ Как разные СУБД реализуют поддержку дополнительных индексов.
✅ Где могут быть полезны GIN, GiST, BRIN, Columnstore и другие варианты.
✅ Как подходить к выбору типа индекса под конкретную задачу.
В результате вебинара вы сможете:
— Лучше ориентироваться в возможностях индексирования в PostgreSQL и MS SQL Server.
— Понимать, какой тип индекса подходит для разных типов данных и запросов.
— Использовать дополнительные индексы там, где это действительно имеет смысл.
— Повысить эффективность работы с БД за счёт грамотного выбора индексации.
⏰ Оставляйте заявку на бесплатный урок и получите запись прошлого вебинара: https://vk.cc/cMV3O6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какая команда используется для создания новой виртуальной таблицы, которая базируется на результатах SQL-запроса?
Anonymous Quiz
33%
CREATE VIRTUAL TABLE
60%
CREATE VIEW
8%
ALTER VIEW
🔥 Научитесь работать с базами данных и анализировать данные на новом уровне! Курс «SQL для разработчиков и аналитиков» подходит как для новичков, так и для опытных специалистов.
✅ Вы изучите основы реляционных БД, научитесь создавать сложные SQL-запросы, работать с различными СУБД (PostgreSQL, MySQL, SQL Server) и оптимизировать запросы для повышения производительности.
✅ Вы освоите как базовый, так и продвинутый синтаксис SQL. Применяйте эти навыки для решения реальных задач.
⏰ Набор скоро закроется, не упустите шанс прокачать свои навыки и открыть новые перспективы для карьерного роста.
Пройдите тест и получите скидку на обучение: https://vk.cc/cNbsJ2
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
✅ Вы изучите основы реляционных БД, научитесь создавать сложные SQL-запросы, работать с различными СУБД (PostgreSQL, MySQL, SQL Server) и оптимизировать запросы для повышения производительности.
✅ Вы освоите как базовый, так и продвинутый синтаксис SQL. Применяйте эти навыки для решения реальных задач.
⏰ Набор скоро закроется, не упустите шанс прокачать свои навыки и открыть новые перспективы для карьерного роста.
Пройдите тест и получите скидку на обучение: https://vk.cc/cNbsJ2
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какая функция позволяет преобразовать все буквы в выбранном столбце в верхний регистр?
Anonymous Quiz
5%
TOP
89%
UPPER
6%
UP
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какая фильтрация по order_date в таблице order_table вернёт заказы за январь 2024 года?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ👇
WHERE order_date >= '2024-01-01' AND order_date < '2024-02-01'
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какая фильтрация по order_date в таблице order_table вернёт заказы за январь 2024 года?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Не пропустите 02 июля в 20:00 бесплатный вебинар “SQL: Оконные функции — когда GROUP BY уже не хватает” от курса “SQL для аналитиков и разработчиков”.
На вебинаре обсудим:
✅ Что такое оконные функции и чем они отличаются от агрегатных.
✅ Как с их помощью выполнять расчёты без группировки.
✅ Практические примеры: ранжирование, сравнение с предыдущей строкой, накопительные суммы и т.д.
✅ Что такое PARTITION BY и ORDER BY в контексте окон.
✅ Как оконные функции помогают упростить сложные подзапросы и JOIN-ы.
После вебинара вы сможете:
— Уверенно использовать оконные функции в повседневной работе.
— Упрощать логику отчётов и аналитических расчётов.
— Заменять сложные конструкции простыми и эффективными оконными выражениями.
— Разрабатывать запросы, в которых используются ROW_NUMBER(), LAG(), LEAD(), SUM() OVER() и др.
⏰ Оставляйте заявку на бесплатный урок и получите запись прошлого вебинара: https://vk.cc/cNdrqD
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На вебинаре обсудим:
✅ Что такое оконные функции и чем они отличаются от агрегатных.
✅ Как с их помощью выполнять расчёты без группировки.
✅ Практические примеры: ранжирование, сравнение с предыдущей строкой, накопительные суммы и т.д.
✅ Что такое PARTITION BY и ORDER BY в контексте окон.
✅ Как оконные функции помогают упростить сложные подзапросы и JOIN-ы.
После вебинара вы сможете:
— Уверенно использовать оконные функции в повседневной работе.
— Упрощать логику отчётов и аналитических расчётов.
— Заменять сложные конструкции простыми и эффективными оконными выражениями.
— Разрабатывать запросы, в которых используются ROW_NUMBER(), LAG(), LEAD(), SUM() OVER() и др.
⏰ Оставляйте заявку на бесплатный урок и получите запись прошлого вебинара: https://vk.cc/cNdrqD
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Выберите корректно составленный запрос с функцией GROUP BY
Anonymous Quiz
3%
SELECT COUNT(*) FROM Orders GROUP seller_id;
5%
SELECT seller_id, COUNT(*) FROM Orders GROUP seller_id;
88%
SELECT seller_id, COUNT(*) FROM Orders GROUP BY seller_id;
4%
SELECT COUNT(*) FROM Orders GROUP ON seller_id;
🎓 1 июля в 20:00 МСК OTUS проведёт открытый вебинар «Архитектура DWH по рецепту: метод борща в действии». Это необычный формат, где этапы приготовления блюда помогают понять логику построения хранилища данных.
🎯 На уроке разберём, как «подготовка ингредиентов» (сбор и очистка данных) отражается в core-слое DWH, а «подача блюда» (аналитический слой) превращается в понятные бизнес-отчёты. Вы увидите реальные примеры проектирования масштабируемой аналитической платформы и поймёте, какие компетенции нужны команде.
Участники смогут сразу применять принципы: иерархия слоёв, оптимизация storage-запросов и построение BI-дашбордов, которые будут понятны конечному пользователю. Вы узнаете, как избежать «переваривания» данных и сделать архитектуру отказоустойчивой.
➡️ Этот урок проходит в преддверии старта курса «Data Warehouse Analyst». Все участники получат скидку на обучение.
Регистрируйтесь прямо сейчас, чтобы не пропустить: https://vk.cc/cNihQr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🎯 На уроке разберём, как «подготовка ингредиентов» (сбор и очистка данных) отражается в core-слое DWH, а «подача блюда» (аналитический слой) превращается в понятные бизнес-отчёты. Вы увидите реальные примеры проектирования масштабируемой аналитической платформы и поймёте, какие компетенции нужны команде.
Участники смогут сразу применять принципы: иерархия слоёв, оптимизация storage-запросов и построение BI-дашбордов, которые будут понятны конечному пользователю. Вы узнаете, как избежать «переваривания» данных и сделать архитектуру отказоустойчивой.
➡️ Этот урок проходит в преддверии старта курса «Data Warehouse Analyst». Все участники получат скидку на обучение.
Регистрируйтесь прямо сейчас, чтобы не пропустить: https://vk.cc/cNihQr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Выберите пример корректно составленного запроса с использованием UNION
Anonymous Quiz
24%
SELECT id, city FROM Orders ORDER BY id UNION SELECT id, city FROM Sellers ORDER BY city;
3%
SELECT id, city, seller_id FROM Orders AND select city, id FROM Sellers ORDER BY id;
64%
SELECT id, city FROM Orders UNION SELECT id, city FROM Sellers ORDER BY id;
8%
Все запросы составлены верно
Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?
Андрон Алексанян — эксперт по аналитике с 8-летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и чёткий план, как устроиться в аналитику быстрее, даже если у вас нет опыта
Что будет на вебинаре?
— покажут реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— обсудите, какие отклики работают, а какие сразу отправляют в корзину;
— изнанка найма: инсайдерский взгляд на процессы отбора
🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от Simulative, который поможет бустануть карьеру
Please open Telegram to view this post
VIEW IN TELEGRAM
Задачка по нашей базе данных, которую можно найти в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой столбец нужно указать в PARTITION BY, чтобы получить первый заказ каждого пользователя?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ⤵️
customer_id
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой столбец нужно указать в PARTITION BY, чтобы получить первый заказ каждого пользователя?
WITH ranked_orders AS (
SELECT
*
, ROW_NUMBER() OVER (PARTITION BY _____ ORDER BY order_date DESC)
AS rn
FROM order_table
)
SELECT * FROM ranked_orders WHERE rn = 1;
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой верный ответ на задачку выше? ⬆️
Anonymous Quiz
5%
quantity
26%
order_id
13%
order_date
56%
customer_id
📕 Архитектура и дизайн систем на основе NoSQL в облаках для разработчиков, администраторов, специалистов по базам данных, Data engineers, Backend и FullStack-разработчиков
На открытом уроке 10 июля в 20:00 мск мы погрузимся в тонкости работы с системами на основе NoSQL в облачных средах:
📗 На вебинаре разберём:
1. Основы NoSQL и его применение в облачных средах;
2. Реальные примеры и кейсы использования NoSQL в облаках;
📘 В результате на практике разберетесь в настройке и развертывании NoSQL баз данных в популярных облачных платформах (Сберклауд, Яндекс Облако, AWS, Google Cloud, Azure) и освоите применение основных операции с данными, масштабирования и управления производительностью NoSQL.
👉 Регистрация и подробности о курсе NoSQL: https://vk.cc/cNpk2M
Все участники открытого урока получат скидку на курс "NoSQL"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 10 июля в 20:00 мск мы погрузимся в тонкости работы с системами на основе NoSQL в облачных средах:
📗 На вебинаре разберём:
1. Основы NoSQL и его применение в облачных средах;
2. Реальные примеры и кейсы использования NoSQL в облаках;
📘 В результате на практике разберетесь в настройке и развертывании NoSQL баз данных в популярных облачных платформах (Сберклауд, Яндекс Облако, AWS, Google Cloud, Azure) и освоите применение основных операции с данными, масштабирования и управления производительностью NoSQL.
👉 Регистрация и подробности о курсе NoSQL: https://vk.cc/cNpk2M
Все участники открытого урока получат скидку на курс "NoSQL"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576