1. Главная
  2. Библиотека
  3. Информационные технологии
  4. Напишите запрос, который выведет имя, фамилию студента...
Разбор задачи

Напишите запрос, который выведет имя, фамилию студента и название группы, в которой он учится. Используйте INNER JOIN. Дайте таблицам псевдонимы s (для students) и g (для groups). Требования к результату: В выборку должны попасть только те студенты, у

  • Предмет: Информационные технологии
  • Автор: Кэмп
  • #Программирование (языки C++, Java, Python и др.)
  • #Базы данных
Напишите запрос, который выведет имя, фамилию студента и название группы, в которой он учится. Используйте INNER JOIN. Дайте таблицам псевдонимы s (для students) и g (для groups). Требования к результату: В выборку должны попасть только те студенты, у

Условие:

Напишите запрос, который выведет имя, фамилию студента и название группы, в которой он учится. Используйте INNER JOIN. Дайте таблицам псевдонимы s (для students) и g (для groups).
Требования к результату: В выборку должны попасть только те студенты, у которых указана группа (group_id не равен NULL).

Модифицируйте запрос из задания 1 так, чтобы вывести: фамилию студента, имя студента, название группы и факультет. Отсортируйте результат по фамилии студента в алфавитном порядке (по возрастанию).

Напишите запрос, который выводит имена, фамилии и названия групп только для тех студентов, которые учатся на факультете «Информационные технологии». Используйте INNER JOIN и условие WHERE. Подсказка: Фильтрация по названию факультета применяется уже после соединения таблиц.

Напишите запрос, который выведет список ВСЕХ студентов (имя, фамилия) и название их группы, если она есть. Если у студента нет группы, в столбце с названием группы должно отображаться NULL. Используйте LEFT JOIN. Подсказка: Левая таблица (после FROM) — students.

Используя LEFT JOIN и условие WHERE ... IS NULL, найдите студентов, у которых не указана группа (group_id является NULL). Выведите их имена и фамилии.

Для каждой группы (выведите название группы) посчитайте количество студентов в ней. Итоговый столбец назовите StudentsCount. Учтите, что могут быть группы без студентов (например, новая группа, в которую еще никого не зачислили) — в этом случае должно выводиться число 0.

Найдите все группы (выведите название группы и факультет), в которых есть студенты старше 17 лет. Если в группе несколько таких студентов, группа должна быть выведена только один раз. Подсказка: Используйте INNER JOIN и DISTINCT, либо комбинацию JOIN и подзапроса (на усмотрение студента). В данном случае подойдет GROUP BY.

Выведите список групп (название) и максимальный возраст студента в группе. Оставьте только те группы, где максимальный возраст больше 17. Отсортируйте результат по убыванию максимального возраста. Подсказка: Используйте GROUP BY, функцию MAX, а для фильтрации групп — оператор HAVING (так как условие применяется к агрегированному результату, а не к отдельным строкам).

Решение:

Здравствуйте! Я готов помочь вам разобраться с этими задачами по SQL, связанными с использованием различных типов соединений (JOIN) и агрегатных функций.

Предположим, у нас есть следующие структуры таблиц (это стандартный набор для таких задач):

  1. students (s): student_id, first_name, last_name, age, group_id
  2. groups (g): group_id, group_name, faculty_id
  3. faculties (f): faculty_id, faculty_name

Задание 1. INNER JOIN: Имя, Фамилия, Группа (только студенты с группой)

Требование: Вывести имя, фамилию студента и название группы, используя INNER JOIN. Включить только тех, у кого `group_...

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

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой оператор SQL используется для фильтрации групп на основе агрегированных результатов (например, максимального возраста или количества студентов)?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет