![]() |
|
Модераторы: skyboy |
![]()
|
|
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
Теряюсь как правильно составить запрос.
Даны 2 таблицы связанные по id: Students(id, name) и Results(id,subject,mark), содержащих данные о студентах Нужно написать запрос, который выведет список студентов с максимальным средним баллом. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Либо студента (одного) с макс. средним баллом, либо всех студентов в порядке убывания (ещё раз прочти последние два слова... идею понял?) среднего балла. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
ну почему же одного? Есть же вероятность, что у 10 чел будут все пятерки.
Plathon, СУБД? -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Если СУБД поддерживает подзапросы - задача решается легко... если нет - у тебя проблемы.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
||||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Это работает в Аксессе (фича). В MS SQL 2000 немного сложнее... (пока не было Инета - даже проверил, работает)
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
чё-то как-то сложно, и я не пойму там же получается находится среднее значение, а мне нужно получить максимальные значения из средних баллов
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ну добавь их в список выбираемых полей, блин! -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
так просто? там надо подзапрос писать, для меня это не совсем просто
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Да, так просто. И никакой подзапрос писать не надо, уже всё посчитано.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
в SQL 2000 тоже работает
Это сообщение отредактировал(а) Deniz - 8.10.2010, 14:29 -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Нет. В MS Sql сказано - один, значит один. даже если первые несколько записей имеют одинаковое макс. значение ключа сортировки. Ты хочешь сказать, что MS SQL Server 2000 согласится обработать ТАКОЕ? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
ну сначала же подсчитывает avg() в списке средний бал для каждого студента, а в конечном результате нужно получить список с максимальным баллом. как жеж тут без подзапроса обойтись??? |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
не знаю, прокатит ли.. и есть ли эта опция в 2к
Добавлено @ 14:44 есть! Это сообщение отредактировал(а) Zloxa - 8.10.2010, 14:44 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
для того чтобы отсортироваться по максимальной оценке, все равно придется обернуться подзапросом. Но отсортировать небольшой результат таки лучше чем дважды сканировать таблицу.
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
а если таки нужно сканировать 2 раза таблицу, как мне написать подзапрос, средний бал я то могу найти:
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
где???
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Скажи, если мы посчитали СРЕДНИЙ БАЛЛ, потом отсортировали ПО НЕМУ, причём по УБЫВАНИЮ, потом взяли ПЕРВЫЙ - как полагаешь, может он оказаться НЕ МАКСИМАЛЬНЫМ?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Plathon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.10.2010 Репутация: нет Всего: нет |
Всё понятно, синтакис тока начинаю учить
with ties связывает все имена с макс баллом Это сообщение отредактировал(а) Plathon - 8.10.2010, 18:10 |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |