Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2021, 17:40   #1
Berg017
Новичок
Джуниор
 
Регистрация: 05.02.2021
Сообщений: 1
По умолчанию Запрос SQL

Уважаемые программисты, подскажите пожалуйста правильность написания кода.
Ниже будут представлены мой варианты ответов, но они неверные. Я не разберусь в чем причина
1. Напишите запрос, который выводит сумму, сколько часов должен в итоге проучиться каждый
студент (сумма длительности всех курсов на которые он подписан).

В результате запрос возвращает две колонки: Имя Студента — Количество часов.
SELECT Students.name as student_name, COUNT(*) as cours_hours FROM Courses
JOIN Students ON Students.id = Cours.hours_id
GROUP Students.id;


2. Напишите запрос, который посчитает для каждого учителя средний возраст его учеников.
SELECT Teachers.name as teacher_name, COUNT(*) as AVG(age) Students_age FROM Courses
JOIN Teachers ON Teachers.id = Students.age_id
GROUP BY Teachers.id;


В результате запрос возвращает две колонки: Имя Учителя — Средний Возраст Учеников.

3. Напишите запрос, который выводит среднюю зарплату учителей для каждого типа курса (Дизайн/Программирование/Маркетинг и т.д.).
SELECT type, AVG(salary) FROM Course GROUP BY type;

В результате запрос возвращает две колонки: Тип Курса — Средняя зарплата.
Berg017 вне форума Ответить с цитированием
Старый 05.02.2021, 20:03   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

0. а где структура таблиц ?..

1. count(*) sum(<число часов курса>)

2. count(*) просто AVG(...)

Мартин Грубер. Понимание SQL.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.02.2021, 16:07   #3
Viktor61
Пользователь
 
Регистрация: 05.05.2018
Сообщений: 92
По умолчанию

Вероятно, имеются 3 таблицы
Courses (hours_id - перв/кл., type, salary);
Students (id- перв/кл., name, age_id);
Teachers(id- перв/кл., name).
Цитата:
SELECT Students.name as student_name, COUNT(*) as cours_hours FROM Courses
JOIN Students ON Students.id = Cours.hours_id
GROUP Students.id
"смешались в кучу кони, люди..." GROUP Students.id - группировка по не включенному в выборку полю, да еще в JOIN связанной таблице.
Можно хотя бы так:
Код:
SELECT Students.id, COUNT(age_id)
FROM Students 
GROUP id;
Получим кол-во age_id (к-стати, что это поле хранит?), распределенное по Id студента.
И т.д. Короче - к Мартину Груберу "Понимание SQL"!
Viktor61 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос в php - запрос в базу данных так, чтобы еще возвращалось значение, сколько строк затронуто volni PHP 29 16.09.2019 11:49
Запрос в sql 2005 - SQL Server a.n.o.n.i.m SQL, базы данных 8 31.03.2016 17:01
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15