|
Программирование >> Исключение дубликатов строк
Преобразование/ Select category description, student first name, student Уточнение: last name, and the average AVG(of grade) as AvgOfGrade from the categories table joined with the subjects table on category ID then joined with the classes table on subject ID, then joined with the student schedules table on class ID, then joined with the student class status table on class status, and finally joined with the students table on student ID where class status description is = Compl-eted, grouped by category description, student first name, and student last name (Выбрать описание категории, имя студента, фамилию студента, АУС(балл) как AvgOfGrade из Категории , соединенной с Предметы по идентификатору категории, соединенной с Курсы лекций по идентификатору предмета, соединенной с Расписание занятий студента по идентификатору курса лекций, соединенной с Состояние курсов лекций студента по состоянию курса лекций, соединенной со Студенты по идентификатору студента, где описание состояния курса лекций = Завершен, сгруппированные по описанию категории, имени студента, фамилии студента) SQL SELECT Categories.CategoryDescription, Students.StudFi rstName, Students.StudLastName, Avg(Student.Schedules.Grade) AS AvgOfGrade FROM ((((Categories INNER JOIN Subjects ON Categories.CategorylD = Subjects.CategorylD) INNER JOIN Classes ON Subjects.SubjectID = Classes.SubjectID) INNER JOIN Student Schedules ON Classes.ClassID = Student Schedules.ClassID) INNER JOIN StudentClassStatus ON Student Class Status.ClassStatus = Student Schedules.ClassStatus) INNER JOIN Students ON Students.StudentID = StudentSchedules.StudentID WHERE StudentClassStatus.ClassStatusDescription = Completed GROUP BY Categories.CategoryDescription, Students.StudFirstName, Students.StudLastName Student.GrQcleflverQge.Bv.CQtegorv (45 строи)
Бозо донных рецептов Show me how many recipes exist for each class of Ingredient , ( Показать, сколько суиествует рецептов для каоюдого вида компонентов Внимание! Трудность данной задачи состоит в том, что мы не хотим выполнять подсчет по конкретному виду рецептов более одного раза на рецепт. Например, если рецепт содержит несколько растительных и молочных компонентов, то он должен подсчитываться только один раз для конкретного вида. Похоже, настало самое время воспользоваться функцией COUNT(DISTINCT Value Expression), не так ли? Преобразование/ Select ingredient class description, and the unique count Уточнение: of (DISTINCT recipe ID) from ttte ingredient classes table joined with the ingredients table on ingredient class ID, and then joined with the recipe ingredients table on ingredient ID, grouped by ingredient class description (Выбрать описание вида компонента, подсчитать (DISTINCT идентификатор рецепта) из Виды компонентов , соединенной с Компоненты по идентификатору вида компонента, соединенной с Компоненты рецепта по идентификатору компонента, сгруппированные по описанию класса компонента) SELECT Ing redient Classes.Ing redientClassDesc ription, Count(DISTINCT RecipelD) AS CountOfRecipelD FROM (IngredientClasses INNER JOIN Ingredients ON Ingredient Classes.IngredientClassID = Ingredients.IngredientClassID) INNER JOIN Recipe.Ingredients ON Ingredients.IngredientID = Recipe.Ingredients.IngredientID GROUP BY Ingredient.Classes.IngredientClassDescription lngreclientClQss Distinct Recipe Count (18 строк) ЧШ:. Cheese ConcU Fruit CTmin остальные строки Внимание! Поскольку Microsoft Access 2000 не поддерживает COUNT DISTINCT, запрос для примера базы данных на Access вначале выбирает DISTINCT значения для Recipe ID (идентификатора рецепта), используя табличный подзапрос в условии FROM, а затем подсчитывает строки, полученные в результате. Итоги Из данной главы вы узнали, зачем требуется объединять данные в группы, чтобы получить несколько итоговых подсумм для набора результата. После танталовых мучений с примером мы перешли к показу использования условия GROUP BY для решения этого примера и нескольких других. Также показали, как смешивать выражения со столбцами с агрегатными функциями.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |