У меня есть проблема, и НЕТ это не домашняя работа, это просто программист, который долгое время был далеко от SQL и должен был решить проблему.
У меня есть следующая таблица:
create table students(
studentid int identity(1,1),
[name] varchar(200),
[group] varchar(10),
grade numeric(9,2)
)
go
Группа является чем-то произвольным, предположим, что это следующая "Группа A", "Группа B" ... и т. Д.
Оценка по шкале от 0 до 100.
Если в каждой группе 5 учеников со случайными оценками, каков наилучший подход к получению 3 лучших учеников (80% лучших) в зависимости от их класса?
Чтобы быть более конкретным, если бы у меня было следующее:
Ronald, Group A, 84.5
George H, Group A, 82.3
Bill, Group A, 92.0
George W, Group A, 45.5
Barack, Group A, 85.0
Я бы вернулся Рональд, Билл и Барак . Я также должен был сделать это по другим группам.