Предложение HAVING |
||
Пусть требуется найти красные квадраты, т.е. квадраты, окрашенные только баллонами с красной краской и суммарным количеством краски, равным 255. Речь идёт о базе данных "Окраска". Эту задачу можно решить разными способами. Здесь мы приведём решение с использованием оператора CASE в предложении HAVING. Идея состоит в следующем. Выполняя группировку по идентификатору квадрата, будем суммировать объем краски. При этом краску красного цвета будем добавлять со знаком "+", а остальную - со знаком "-". Поскольку краски каждого цвета на квадрате не может быть больше 255 единиц, то результат, равный в точности 255 говорит о том, что вся эта краска была красного цвета, и никакой другой использовано не было. А вот и само решение:
|