Помогите с агрегатными функциями SQL - PullRequest
1 голос
/ 28 октября 2010

Я изучаю SQL уже около дня и столкнулся с трудностями.Пожалуйста, помогите мне со следующими вопросами:

STUDENT (**StudentNumber**, StudentName, TutorialNumber)
TUTORIAL (**TutorialNumber**, Day, Time, Room, TutorInCharge)
ASSESSMENT (**AssessmentNumber**, AssessmentTitle, MarkOutOf)
MARK (**AssessmentNumber**, **StudentNumber**, RawMark)

PK и FK определены в «**».Мне нужно сгенерировать запросы, которые:

1) Список результатов задач оценки с указанием: номера оценки, названия оценки и средней необработанной оценки.Я знаю, как использовать функцию avg для одного столбца, но для отображения чего-то для нескольких столбцов ... здесь немного неуверенно.

Моя попытка:

SELECT RawMark, AssessmentNumber, AsessmentTitle
FROM MARK, ASSESSMENT
WHERE RawMark = (SELECT (RawMark) FROM MARK)
AND MARK.AssessmentNumber = ASSESSMENT.AssessmentNumber;

2) Сообщить оПоказ регистрации зачисления в учебник: Номер учебного пособия, День, Комната, Оплачиваемый репетитор и количество зачисленных студентов.То же, что и функция avg, теперь для функции count.Требуется ли для этого 2 запроса?

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

1 Ответ

0 голосов
/ 28 октября 2010

Вот пример для первого, просто возьмите логику и посмотрите, сможете ли вы расширить ее до других вопросов. Я считаю, что эти вещи могут быть трудными для изучения, если вы не можете найти каких-либо убедительных примеров, но как только вы освоите их, вы довольно быстро разберетесь.

1)

SELECT a.AssessmentNumber, a.AssessmentTitle, AVG(RawMark)
FROM ASSESSMENT a LEFT JOIN MARK m ON a.AssessmentNumber = m.AssessmentNumber
GROUP BY a.AssessmentNumber, a.AssessmentTitle

ИЛИ не использовать левое объединение или псевдоним таблицы

SELECT ASSESSMENT.AssessmentNumber, ASSESSMENT.AssessmentTitle, AVG(RawMark)
FROM ASSESSMENT,MARK
WHERE ASSESSMENT.AssessmentNumber = MARK.AssessmentNumber
GROUP BY ASSESSMENT.AssessmentNumber, ASSESSMENT.AssessmentTitle
...