Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужно оптимизировать запрос 
:(
    Опции темы
Rohoss
Дата 24.1.2010, 12:40 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



 Тут есть задача

Цитата

Краткая информация о базе данных "Аэрофлот":

Схема БД состоит из четырех отношений:
Company (ID_comp, name)
Trip(trip_no, ID_comp, plane, town_from, town_to, time_out, time_in)
Passenger(ID_psg, name)
Pass_in_trip(trip_no, date, ID_psg, place)
Таблица Company содержит идентификатор и название компании, осуществляющей перевозку пассажиров. Таблица Trip содержит информацию о рейсах: номер рейса, идентификатор компании, тип самолета, город отправления, город прибытия, время отправления и время прибытия. Таблица Passenger содержит идентификатор и имя пассажира. Таблица Pass_in_trip содержит информацию о полетах: номер рейса, дата вылета (день), идентификатор пассажира и место, на котором он сидел во время полета. При этом следует иметь в виду, что
- рейсы выполняются ежедневно, а длительность полета любого рейса менее суток;
- время и дата учитывается относительно одного часового пояса;
- время отправления и прибытия указывается с точностью до минуты;
- среди пассажиров могут быть однофамильцы (одинаковые значения поля name, например, Bruce Willis);
- номер места в салоне – это число с буквой; число определяет номер ряда, буква (a – d) – место в ряду слева направо в алфавитном порядке;
- связи и ограничения показаны на схеме данных.


Цитата

Задание:
Считая, что пункт самого первого вылета пассажира является местом жительства, найти не москвичей, которые прилетали в Москву более одного раза. 
Вывод: имя пассажира, количество полетов в Москву


Вот два моих решения
Код

Select T.name, COUNT(T.name) AS Qty from
(Select pit.trip_no, pit.ID_psg, p.name from Pass_in_trip pit 
Left Join Passenger p 
ON p.ID_psg = pit.ID_psg) AS T
LEFT JOIN Trip tr ON T.trip_no = tr.trip_no
WHERE town_from <> 'Moscow' AND town_to = 'Moscow'
GROUP BY name
HAVING COUNT(T.name) > 1


Код

SELECT p.name, COUNT(p.name) FROM
(Select trip_no from Trip
WHERE town_from <> 'Moscow' AND town_to = 'Moscow') AS tr
INNER JOIN Pass_in_trip ON tr.trip_no = Pass_in_trip.trip_no
INNER JOIN Passenger p ON p.ID_psg = Pass_in_trip.ID_psg
GROUP BY p.name
HAVING COUNT(p.name) > 1


получаю ответ
Цитата

Неверно.
Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Неверное число записей (больше на 5)


В чём здесь ошибка?


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
Gluttton
Дата 24.1.2010, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Цитата(Rohoss @  24.1.2010,  12:40 Найти цитируемый пост)
Тут есть задача

Ссылка ведет на страницу авторизации...

Цитата(Rohoss @  24.1.2010,  12:40 Найти цитируемый пост)
В чём здесь ошибка? 

Как правило, Моисеенко С.И. - руководитель проекта, достаточно быстро и в необходимом объеме отвечает на подобные вопросы, которые заданы ему по e-mail.
Для того что бы отправить письмо посетите раздел "Помощь" - "Запрос в поддержку".

Ну и на сколько мне припоминается администрация сайта просит не искать помощи "на стороне". Не уверен, что это требование распространяется и на упражнения обучающего этапа, но тем не менее  smile ...


--------------------
Слава Україні!
PM MAIL   Вверх
Zloxa
Дата 24.1.2010, 16:58 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Rohoss @  24.1.2010,  12:40 Найти цитируемый пост)
В чём здесь ошибка? 

ты не реализовал вычисления выражения "пункт самого первого вылета пассажира", который является местом жительства, потому накладываемое тобой ограничение на "не москвичей" - не выполнено.


Это сообщение отредактировал(а) Zloxa - 24.1.2010, 19:55


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Rohoss
Дата 25.1.2010, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Что то я не внимательно условие прочитал. smile  Спасибо  smile 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.