Почему я должен дать имя подзапросу при использовании COUNT? - PullRequest
0 голосов
/ 06 мая 2019

Для следующего запроса:

SELECT COUNT(*) FROM
(
  SELECT DISTINCT codEst FROM
  inscripciones WHERE codCur = 9
) cantEstudiantes;

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

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Техника, которую вы используете, называется «производная таблица».Каждая таблица, даже производная таблица, должна иметь имя.Вот почему вы не можете опустить это.

0 голосов
/ 06 мая 2019

Производные таблицы не совпадают с временными или физическими таблицами, в которых объявлены поля и типы данных. И при этом они не подзапросы. Вместо этого, как видно из названия, таблица получена из существующей таблицы. Я сравниваю их с представлениями, но представление - это объект, который создается и может использоваться повторно. Производная таблица доступна только во время выполнения и не может повторно использоваться в запросе. Другими словами, вы не можете ссылаться на него несколько раз, как в обычных табличных выражениях (CTE).

http://dbadiaries.com/t-sql-derived-tables-demonstrated-and-explained/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...