为什么使用COUNT时必须给子查询起一个名字?

时间:2019-05-06 19:12:44

标签: sql sql-server

对于以下查询:

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

如果我删除了子查询的命名(cantEstudiantes),它将给出一个错误。为什么我不必为子查询命名,但我什么都没有使用?

2 个答案:

答案 0 :(得分:0)

派生表与声明了字段和数据类型的临时或物理表不同。它们也不是子查询。相反,顾名思义,该表派生自现有表。我将它们比作视图,但是视图是一个已创建且可重复使用的对象。派生表仅在执行时可用,而在查询中不可重用。换句话说,您不能像使用普通表表达式(CTE)一样多次引用它。

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

答案 1 :(得分:0)

您使用的技术称为“派生表”。每个表,甚至派生表都必须有一个名称。这就是为什么您不能忽略它。