Как посчитать количество кафедр с лидирующим числом бюджетных мест для каждого факультета. Подвести итог по количеству мест для всего учреждения

123
14 октября 2021, 07:40

Пример : на факультете 5 кафедр, где

на первой - 5 бюджетных мест,

на второй - 10, на третьей - 10, на четвертой - 8, на пятой - 8

итого число кафедр с лидирующим количеством бюджетных мест на этом факультете - 2. Не понять, как это сделать. Ниже изложены запросы, где я формировал отчёт. Бюджетны места высчитываются по такой формуле: "Количество_мест" * 0.3

Create table План_зачисления_студентов
(
            Код_кафедры         int             Primary Key,
            Название_кафедры    nvarchar(50)    Not Null,
            Количество_мест     int             NULL,
            Foreign key (Код_кафедры) References Кафедры (Номер_Кафедры)
)
-- Вхождение данных из таблицы Кафедры и случайных чисел в строку кол-во мест
Insert INTO План_зачисления_студентов
    SELECT Номер_кафедры, Название_кафедры, NULL from Кафедры 
UPDATE План_зачисления_студентов SET Количество_мест = CAST(RAND(CAST(NEWID() AS varbinary(16)))*300+1 AS INT)
    WHERE Количество_мест is NULL
-- Создание обзора
Create View План_зачисления_студентов_обзор
AS
SELECT *
FROM План_зачисления_студентов
-- Пример решения создания макета для VS
SELECT Название_кафедры, CONVERT(int, ROUND(SUM(Количество_мест)*0.3, 0)) AS Бюджетных_мест,
                            Convert(int, ROUND(SUM(Количество_мест)*0.7,0)) AS Платных_мест, 
                            SUM(Количество_мест) AS Всего_мест 
    From План_зачисления_студентов_обзор
        GROUP BY Название_кафедры
SELECT Название_кафедры, Количество_мест * 0.3 AS Бюджетных_мест from План_зачисления_студентов_обзор
    Group BY Название_кафедры
Answer 1

Бюджетные места высчитываются по такой формуле: "Количество_мест" * 0.3

Поскольку коэффициент постоянный, а тип округления не указан, можно посчитать по максимуму мест. Если задание уточнится, внести соотв. исправления несложно.

Для SQL Sever

SELECT TOP 1 COUNT(Количество_мест)
FROM План_зачисления_студентов
GROUP BY Количество_мест
ORDER BY Количество_мест DESC

Для MySQL

SELECT COUNT(Количество_мест)
FROM План_зачисления_студентов
GROUP BY Количество_мест
ORDER BY Количество_мест DESC
LIMIT 1
READ ALSO
Адаптивная верстка DIV [закрыт]

Адаптивная верстка DIV [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

228
Большая задержка в вводе текст SFML

Большая задержка в вводе текст SFML

Всем привет, в моём проекте sfml используется ввод текста в текстовое полеПо умолчанию такой функции нет в sfml, но я поискал в интернете и нашёл...

239
Динамические библиотеки c++ Mac OS

Динамические библиотеки c++ Mac OS

Я новичок в C++Работаю на Macbook

155
Замена элементов матрицы

Замена элементов матрицы

Есть задание: Динамически выделить память под N*M элементов целого типа intРазработать алгоритм и программу обработки двумерного динамического...

214