Упражнение (-2) (подсказки и решения) стр. 2 |
|||||
Решение 4.19.2
В подзапросе предложения WHERE проверку на NULL-значения можно не выполнять, если использовать вместо функции COUNT(*) функцию COUNT(launched), поскольку в этом случае будут подсчитаны только корабли с известным годом спуска на воду:
Для всех же кораблей с неизвестным годом спуска на воду будет получена строка со значением 0, так как если в наборе нет ни одной записи, то функция COUNT возвращает именно это значение. Последнее не должно нас смущать, поскольку количество кораблей в основном запросе больше нуля, если есть хотя бы один корабль с известным годом спуска на воду. Аналогичным образом можно поступить и в основном запросе, что позволит получить более краткую форму решения: Решение 4.19.3
Справедливости ради следует отметить, что стоимость решения 4.19.3 по его плану выполнения в Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server 2000 будет незначительно уступать (в третьей значащей цифре) стоимости решения 4.19.2.
Примечание:
Стоимость любого запроса к учебным базам данных, а также процедурный план его выполнения можно посмотреть на странице сайта. Вернуться к обсуждению упражнения (-2)
|