Академический Документы
Профессиональный Документы
Культура Документы
Отчет 3 лаба Калинин Ушаков
Отчет 3 лаба Калинин Ушаков
Лабораторная работа №3
Вариант 45678
Студент
Калинин Даниил,
Ушаков Максим
P33141
Преподаватель
Сагайдак А. А.
Санкт-Петербург, 2023 г.
Задание
---2---
---4---
SELECT НГП.ПЛАН_ИД
FROM Н_ГРУППЫ_ПЛАНОВ AS НГП
LEFT JOIN Н_УЧЕНИКИ AS УЧЕНИКИ ON НГП.ПЛАН_ИД = УЧЕНИКИ.ПЛАН_ИД
WHERE УЧЕНИКИ.ГРУППА LIKE 'ФКТИУ%'
GROUP BY НГП.ПЛАН_ИД
HAVING COUNT(УЧЕНИКИ.ГРУППА) < 2;
---5---
WITH Group4100Avg AS (
SELECT
Н_УЧЕНИКИ.ГРУППА AS GroupNumber,
Н_УЧЕНИКИ.ЧЛВК_ИД,
AVG(Ведомости.БАЛЛЫ) AS Avg_Grade
FROM
public.Н_УЧЕНИКИ
JOIN public.Н_ВЕДОМОСТИ AS Ведомости ON Н_УЧЕНИКИ.ЧЛВК_ИД =
Ведомости.ЧЛВК_ИД
WHERE
Н_УЧЕНИКИ.ГРУППА = '4100'
GROUP BY
Н_УЧЕНИКИ.ГРУППА, Н_УЧЕНИКИ.ЧЛВК_ИД
),
Group3100Min AS (
SELECT
MIN(Ведомости.БАЛЛЫ) AS Min_Grade
FROM
public.Н_УЧЕНИКИ
JOIN public.Н_ВЕДОМОСТИ AS Ведомости ON Н_УЧЕНИКИ.ИД = Ведомости.ЧЛВК_ИД
WHERE
Н_УЧЕНИКИ.ГРУППА = '3100'
)
SELECT
G4100.GroupNumber AS Number,
CONCAT_WS(' ', L.ФАМИЛИЯ, L.ИМЯ, L.ОТЧЕСТВО) AS Full_Name,
G4100.Avg_Grade AS Avg_Grade
FROM
Group4100Avg G4100
JOIN public.Н_ЛЮДИ L ON G4100.ЧЛВК_ИД = L.ИД
JOIN Group3100Min G3100 ON 1=1
WHERE
G4100.Avg_Grade = G3100.Min_Grade;
---6---
SELECT
Н_ГРУППЫ_ПЛАНОВ.ГРУППА AS "Номер группы",
CONCAT_WS(' ', Н_ЛЮДИ.ФАМИЛИЯ, Н_ЛЮДИ.ИМЯ, Н_ЛЮДИ.ОТЧЕСТВО) AS "ФИО
студента",
Н_УЧЕНИКИ.ПРИМЕЧАНИЕ AS "Номер пункта приказа"
FROM Н_УЧЕНИКИ
JOIN Н_ГРУППЫ_ПЛАНОВ ON Н_УЧЕНИКИ.ГРУППА = Н_ГРУППЫ_ПЛАНОВ.ГРУППА
JOIN Н_ЛЮДИ ON Н_УЧЕНИКИ.ЧЛВК_ИД = Н_ЛЮДИ.ИД
JOIN Н_ПЛАНЫ AS ПЛАНЫ ON Н_УЧЕНИКИ.ПЛАН_ИД = ПЛАНЫ.ИД
JOIN Н_ФОРМЫ_ОБУЧЕНИЯ AS ФОРМЫ ON ПЛАНЫ.ФО_ИД = ФОРМЫ.ИД
WHERE
Н_УЧЕНИКИ.СОСТОЯНИЕ = 'Отчислен'
AND ФОРМЫ.НАИМЕНОВАНИЕ = 'Очная'
AND DATE(Н_УЧЕНИКИ.КОНЕЦ) = '2012-09-01';
---7---
SELECT
ФАМИЛИЯ AS Фамилия,
COUNT(DISTINCT ИД) AS Количество
FROM
public.Н_ЛЮДИ
GROUP BY
ФАМИЛИЯ
HAVING
COUNT(DISTINCT ИД) > 1;
Вывод
В результате выполнения работы был освоен язык DML SQL, предназначенный для
работы с данными, хранящимися внутри базы данных.