Что такое псевдоним Oracle - почему псевдоним не распознается в запросе, если не заключен во второй запрос?

У меня есть запрос


SELECT COUNT(*) AS "CNT",
       imei
FROM   devices  

, который отлично выполняется. Я хочу дополнительно ограничить запрос оператором WHERE. Следующим (по-человечески) логическим шагом является изменение запроса следующим образом:


SELECT COUNT(*) AS "CNT",
       imei
FROM   devices
WHERE  CNT > 1 

Однако это приводит к сообщению об ошибке ORA-00904: «CNT»: недопустимый идентификатор . По какой-то причине включение запроса в другой запрос дает желаемый результат:


SELECT *
FROM   (SELECT COUNT(*) AS "CNT",
               imei
        FROM   devices
        GROUP  BY imei)
WHERE  CNT > 1  

Почему Oracle не распознает псевдоним «CNT» во втором запросе?

7
задан simon 27 May 2011 в 14:37
поделиться