Что вернёт запрос?
Схема БД и код для генерации данных находятся в шапке канала.
Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.
Если вам понравился вопрос - зашарьте его друзьям👉  SQLQuestions
SELECT SUBSTRING(email, 1, LOCATE('@', email) - 1) FROM customer WHERE customer_id = 1;Схема БД и код для генерации данных находятся в шапке канала.
Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.
Если вам понравился вопрос - зашарьте его друзьям
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👌2
  Что вернёт код сверху?
  Anonymous Quiz
    19%
    Домен почты клиента
      
    67%
    Имя пользователя до @
      
    10%
    Полный email
      
    5%
    Ошибку
      
    👍2👌1
  Можно ли поменять тип данных поля в уже существующей таблице?
  Anonymous Quiz
    70%
    Да, при помощи команды ALTER
      
    13%
    Да, достаточно сделать INSERT с новым типом данных
      
    14%
    Нет, только пересоздать таблицу
      
    4%
    Тип бывает только у таблицы, а не у поля таблицы
      
    👍6🔥3👌3
  Что покажет следующий запрос?
SELECT id FROM Orders WHERE year (date) > 2018;
  SELECT id FROM Orders WHERE year (date) > 2018;
Anonymous Quiz
    5%
    Номера заказов, сделанных до 2018 года
      
    1%
    Номера заказов, сделанных в 2018 году
      
    1%
    Уникальные номера заказов
      
    93%
    Номера заказов, сделанных после 2018 года
      
    🔥10
  🤫 Хотите узнать как сделать связку разработчик+аналитик SQL еще эффективнее?
🔥 Открыт набор на онлайн-курс “SQL для аналитиков и разработчиков”, где мы научим вас продвинутым аспектам работы с реляционными базами данных, улучшить навыки работы с SQL-запросами, понять принципы нормализации баз данных. Оставляйте заявку на курс: https://vk.cc/cMl68o
Что будет на курсе?
— Основы реляционных баз данных, включая ER-диаграммы и компоненты БД
— Практику работы с несколькими популярными СУБД (PostgreSQL, SQL Server, MySQL, Oracle, SQLite)
— Базовый и продвинутый синтаксис SQL-запросов, включая SELECT, JOIN, агрегатные функции, оконные функции и другие
— Практику с применением индексов, триггеров, хранимых процедур и функций для оптимизации работы с данными
— Знание принципов транзакций и их роли в обеспечении целостности данных
— Практику оптимизации производительности запросов и управление большими объемами данных
— Знания особенностей работы с JSON, геоданными и полнотекстовым поиском в разных СУБД.
📈 Присоединяйтесь на курс и повысьте свой уровень в знании SQL: https://vk.cc/cMl68o
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
  🔥 Открыт набор на онлайн-курс “SQL для аналитиков и разработчиков”, где мы научим вас продвинутым аспектам работы с реляционными базами данных, улучшить навыки работы с SQL-запросами, понять принципы нормализации баз данных. Оставляйте заявку на курс: https://vk.cc/cMl68o
Что будет на курсе?
— Основы реляционных баз данных, включая ER-диаграммы и компоненты БД
— Практику работы с несколькими популярными СУБД (PostgreSQL, SQL Server, MySQL, Oracle, SQLite)
— Базовый и продвинутый синтаксис SQL-запросов, включая SELECT, JOIN, агрегатные функции, оконные функции и другие
— Практику с применением индексов, триггеров, хранимых процедур и функций для оптимизации работы с данными
— Знание принципов транзакций и их роли в обеспечении целостности данных
— Практику оптимизации производительности запросов и управление большими объемами данных
— Знания особенностей работы с JSON, геоданными и полнотекстовым поиском в разных СУБД.
📈 Присоединяйтесь на курс и повысьте свой уровень в знании SQL: https://vk.cc/cMl68o
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Для чего используется LIMIT?
SELECT * FROM Orders LIMIT 10;
  SELECT * FROM Orders LIMIT 10;
Anonymous Quiz
    2%
    Чтобы показать все заказы, содержащие цифру 10
      
    87%
    Чтобы показать первые 10 записей результата запроса
      
    11%
    Чтобы показать рандомные 10 записей результата запроса
      
    1%
    Не существует такого оператора
      
    🔥4👏1
  Выберите пример правильно составленного запроса с использованием агрегирующей функции SUM
  Anonymous Quiz
    63%
    SELECT SUM(price) FROM Orders;
      
    12%
    SELECT SUM(price), customer_name FROM Orders;
      
    9%
    SELECT * FROM Orders WHERE price=SUM();
      
    16%
    SELECT SUM() FROM Orders GROUP BY price DESC;
      
    Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Что обеспечивает внешний ключ FOREIGN KEY (category_id) REFERENCES category(category_id) в таблице product?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ👇 
Целостность данных между таблицами product и category. 
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Что обеспечивает внешний ключ FOREIGN KEY (category_id) REFERENCES category(category_id) в таблице product?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Тест к задачке выше ⬆️ 
Что обеспечивает внешний ключ FOREIGN KEY (category_id) REFERENCES category(category_id) в таблице product?
  Что обеспечивает внешний ключ FOREIGN KEY (category_id) REFERENCES category(category_id) в таблице product?
Anonymous Quiz
    18%
    Уникальность каждой категории
      
    12%
    Что каждая категория имеет хотя бы один продукт
      
    68%
    Целостность данных между таблицами product и category
      
    1%
    Что нельзя добавлять новые категории
      
    Как масштабировать машинные модели и работать с огромными объемами данных? Откройте для себя возможности Spark ML на открытом уроке от OTUS!
Spark ML — это мощный инструмент для масштабируемого машинного обучения, который позволяет обучать модели на больших данных, не переходя на специализированные ML-системы. Мы покажем, как интеграция с Spark SQL и DataFrame API упрощает ETL-подготовку данных и фичуризацию для реальных проектов.
Убедитесь, как Spark ML решает задачи отказоустойчивости и распределённых вычислений, позволяя вам легко строить промышленные ML-пайплайны.
Посетите открытый урок 11 июня в 20:00 МСК в преддверие старта курса «Spark Developer» и получите скидку на обучение: https://vk.cc/cMy4tv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
  Spark ML — это мощный инструмент для масштабируемого машинного обучения, который позволяет обучать модели на больших данных, не переходя на специализированные ML-системы. Мы покажем, как интеграция с Spark SQL и DataFrame API упрощает ETL-подготовку данных и фичуризацию для реальных проектов.
Убедитесь, как Spark ML решает задачи отказоустойчивости и распределённых вычислений, позволяя вам легко строить промышленные ML-пайплайны.
Посетите открытый урок 11 июня в 20:00 МСК в преддверие старта курса «Spark Developer» и получите скидку на обучение: https://vk.cc/cMy4tv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как в 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'
      
    4%
    SELECT <ALL> FROM Persons WHERE FirstName='Peter' AND LastName='Jackson'
      
    3%
    SELECT * FROM Persons WHILE FirstName='Peter' AND LastName='Jackson'
      
    0%
    Посмотреть ответ
      
    👍6
  К какому результату приведет выполнение запроса DROP DATABASE Users?
  Anonymous Quiz
    76%
    Полное удаление базы данных «Users»
      
    3%
    Блокировка на внесение изменений в базу данных «Users»
      
    21%
    Удаление таблицы «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
    17%
    INNER JOIN
      
    62%
    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 - напишите в комментах.…
Что вернет код сверху?
  Anonymous Quiz
    5%
    Полные имена клиентов
      
    3%
    Только первую букву имени
      
    87%
    Первую букву имени и фамилии с точками, например "J.D."
      
    5%
    Ошибкe, так как LEFT нельзя применять к строкам
      
    👍4
  🚨 Не пропустите 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
    32%
    CREATE VIRTUAL TABLE
      
    61%
    CREATE VIEW
      
    7%
    ALTER VIEW
      
    👍1
  🔥 Научитесь работать с базами данных и анализировать данные на новом уровне! Курс «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
      
    👍1