Книги и статьи по SQL Rambler's Top100 Switch language to: English 28 марта 2024 г. 20:37:20


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Характерные ошибки при решении упражнений. Задача 16

Моисеенко С.И.

Найдите пары моделей PC, имеющих одинаковые скорость и RAM. В результате каждая пара указывается только один раз, т.е. (i,j), но не (j,i), Порядок вывода: модель с большим номером, модель с меньшим номером, скорость и RAM.

Вот решение, которое довольно часто встречается:

SELECT MAX(model) as 'model', MIN(model) as 'model', speed, ram
FROM PC
GROUP BY speed, ram
HAVING MAX(model) > MIN(model)

Уж не знаю, по какой причине решают выводить только максимальную и минимальную модель для каждого совпадающей пары значений {speed, ram}. Возможно, в заблуждение вводит результат "правильного" запроса на основной базе.

В этой задаче требуется упорядочить все модели, а не только максимальную и минимальную. Экстремальные характеристики упомянуты для однозначности, т.е. чтобы выводить пару моделей один раз, например:

1122    1121

но не

1121    1122

Т.е. если, скажем, три модели - 1122, 1121, 1135 имеют одинаковые характеристики, то вывод должен быть таким:

1135     1122
1135     1121
1122     1121

Есть еще одна ошибка, которую часто допускают при решении этой задачи. Она связана с тем, что таблица PC может содержать несколько компьютеров с одним и тем же номером модели (model). Поэтому необходимо исключить возможные дубликаты искомых пар.

Приведенные здесь примеры можно выполнить непосредственно на сайте, установив флажок "Без проверки" на странице с упражнениями на SELECT.

Перейти к решению задачи #16

На главную страницу

Print  Версия для печати


Использование любых материалов данного сайта возможно только
при условии обязательного размещения прямой ссылки на сайт
http://www.sqlbooks.ru
на каждой странице, где размещены используемые материалы.

 Начало   Статьи    Книги 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.